使用Dapper.SimpleSave更新复杂对象时出现问题

时间:2018-11-21 01:20:45

标签: c# winforms orm dapper

作为大型WinForms项目的一部分,我有以下两个类。

 [Table("Project")]
    public class Project
    {
        [PrimaryKey]
        public int? Id { get; set; }
        public string Name { get; set; }
        public int CustomerId { get; set; }
        public string Description { get; set; }
        public string Reference { get; set; }
        [OneToMany]
        [Column("Id")]
        public List<DocumentControl> DocumentControl { get; set; }
    }

[Table("DocumentControl")]
    public class DocumentControl
    {
        [PrimaryKey]
        public int? Id { get; set; }
        public string Editor { get; set; }
        public string Comment { get; set; }
        public DateTime Date { get; set; }
        public string Version { get; set; }
    }

从我的Project数据库中检索一个实例(该实例没有DocumentControl条目,并返回null)后,我将创建两个新的DocumentControl条目并将其添加到对象中。然后,我将对象传递回以更新DB条目。但是,对Project模型所做的更改很好,并且可以保存回数据库。但该列表未在数据库中包含我的新条目;在POCO中,调试时不再为null,而是计数为0。

我使用以下方法更新数据库

public bool UpdateProject(Project project)
        {
            using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Adagnitio"].ConnectionString))
            {
                db.Open();
                var originalProject = db.AutoQuery<Project>(new { Id = project.Id }).FirstOrDefault();
                db.Update<Project>(originalProject, project);

                db.Close();
                return true;
            }
        }

为什么我的更新的Customer对象缺少DocumentControl对象条目?一直把我的头撞在桌子上。我确定我一定会错过一些简单的东西!

0 个答案:

没有答案