简短的问题是,当 Poco 类具有主键字段的值并且否则插入时,我可以让 EF 执行更新吗?正是 NHibernate 的方式。
除非我弄错了 EF 方式真的很丑。
首先,不要使用 .Add(entity) 进行插入或更新,而是使用 .Add 进行插入和更新:
context.MyEntities.Attach(entity);
我试过了,但什么都没有保存。读完这篇文章后,我发现我错过了设置更改的状态?但是我的上下文没有 ObjectStateManager 所以我需要类似的东西:
var manager = ((IObjectContextAdapter)dbContext).ObjectContext.ObjectStateManager;
这对我来说似乎是一种非常复杂和不雅的方法。我可以让 EF 像 NHibernate 那样工作吗?(如果不是,我在项目中还足够早,我可以撕掉 EF 并重新使用 NHibernate)