Проблема с использованием Dapper.SimpleSave для обновления сложного объекта - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть следующие два класса как часть более крупного проекта 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записи и возвращается как ноль), я создаю две новые записи DocumentControl и добавляю к объекту.Затем я передаю объект обратно, чтобы обновить записи в БД.Тем не менее, изменения, внесенные в модель проекта, хороши и сохраняются обратно в БД;но список не содержит мои новые записи в базе данных;в POCO он больше не равен нулю при отладке, но имеет счетчик 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?Я бился головой об стол на этом.Я уверен, что мне не хватает чего-то простого!

...