如何使用npoco更新包含列表中其他对象的对象?

时间:2014-10-28 09:43:47

标签: c# .net npoco

我有一个带有一些属性的类,其中包含一个包含其他类对象的列表。

[TableName("tblItem")]
[PrimaryKey("ITM_Id", AutoIncrement = false)]
[ExplicitColumns]
public class Item
{
    [Column("ITM_Id")]
    public Guid Id { get; set; }

    [Column("ITM_Name")]
    public string Name { get; set; }

    public List<PictureLink> PictureLink { get; set; }   
}

[TableName("tblPictureLink")]
[PrimaryKey("PIL_Id", AutoIncrement = false)]
[ExplicitColumns]
public class PictureLink
{
    [Column("PIL_Id")]
    public Guid Id { get; set; }

    [Column("PIL_InformationType")]
    public string InformationType { get; set; }
}

我想使用像db.Update(Item)这样的npoco进行更新 - 但是只有属性Id和Name得到更新,如何在同一语句中使用PictureLinks更新列表?

1 个答案:

答案 0 :(得分:0)

将子对象的更新包含在循环中,如下所示:

 using (var scope = db.GetTransaction())
 {
     db.Update(item);
     foreach (var pictureLink in item.PictureLinks)
     {
         db.Update(pictureLink);
     }
     scope.Complete();
  }

在事务中包含更新将确保在出现任何问题时进行回滚。