EF 6 Code First相关实体不保存

时间:2014-07-02 01:44:52

标签: c# entity-framework ef-code-first

我有一个非常简单的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行位于相关实体上,并且不会保存。是否有一些技巧可以让相关实体保存?

1 个答案:

答案 0 :(得分:1)

看起来我需要将每个相关实体设置为已修改。这实际上有效,但我认为将父对象设置为修改状态应该照顾它,但显然不是。这意味着如果我有十个相关对象并且我正在更新它们,那么我需要为所有这些对象设置状态。

_db.Entry(person.Addresses.FirstOrDefault(r=>r.IsPrimary)).State = EntityState.Modified;