我将修改与关联收集的分离实体,例如:附加实体和修改关联
人员和地址是POCO。
当我附加实体并保存更改时,未检测到收集更改,如何更新带地址的人(添加和删除的项目)?
手动跟踪我的收藏吗?
编辑
分离POCO的同步必须手动... EF确实收集的目的不是合并方案(导航属性和关系):(
我比较当前和原始的收藏并且我检测到差异
我将修改与关联收集的分离实体,例如:附加实体和修改关联
人员和地址是POCO。
当我附加实体并保存更改时,未检测到收集更改,如何更新带地址的人(添加和删除的项目)?
手动跟踪我的收藏吗?
编辑
分离POCO的同步必须手动... EF确实收集的目的不是合并方案(导航属性和关系):(
我比较当前和原始的收藏并且我检测到差异
如果您使用的是实体框架,我认为您是因为您将其列为问题上的标记,那么对象仅在实体上下文生成它们时跟踪其更改
User someUser = dbEntities.Users.Single(x => x.Username == "test");
someUser.Name = "changed name";
db.SaveChanges();
该代码将检测到更改并将其保留。
User someUser = new User()
{
Username = "test" //assuming there is already user called test in the database.
}
以这种方式创建用户将不允许EF上下文检测更改。相反,您需要从数据库加载实体,更新它,然后保留更改。
string username = "test";
User someUser = db.Users.Single(x => x.Username == username);
TryUpdateModel(someUser, valueProvider); //valueProvider is usually a form collection of some sort, but could be anything that implements IValueProvider.
db.SaveChanges();
这将允许您拉入实体,更新它并保存更改。
您也可以使用分离的POCO类的工作,然后将其重新连接到环境和状态设置为修改:
保存更改时,[更新的关系可能重复EF4 POCO对象](http://stackoverflow.com/questions/3635071/update-relationships-when-saving-changes-of-ef4-poco-objects) – 2011-03-07 18:01:23
谢谢你这个链接它是非常有帮助 – rad 2011-03-09 10:03:43
你可以upvote张贴如果你喜欢它。 – 2011-03-09 10:17:51