我有一个非常简单的Person
数据结构,它具有相关的Addresses
。首先使用代码,我检索人员,获取他们的主要地址,更新并保存,但更改不会持久保存到数据库。
address = person.Addresses.FirstOrDefault(r=>r.IsPrimary == true);
address.Line1 = line1;
person.LastName = lastName;
_db.People.Attach(person);
_db.Entry(person).State = EntityState.Modified;
_db.SaveChanges();
在这种情况下,LastName属性保存在数据库中,因为它是人员本身的属性,但地址第1行位于相关实体上,并且不会保存。是否有一些技巧可以让相关实体保存?
答案 0 :(得分:1)
看起来我需要将每个相关实体设置为已修改。这实际上有效,但我认为将父对象设置为修改状态应该照顾它,但显然不是。这意味着如果我有十个相关对象并且我正在更新它们,那么我需要为所有这些对象设置状态。
_db.Entry(person.Addresses.FirstOrDefault(r=>r.IsPrimary)).State = EntityState.Modified;