0
我需要将更新的分离EF对象保存到数据库。
的deatched实体通过结合基础机构,然后
foreach child ...
entity.children.add(child)
我添加子实体,我也从绑定得到控制器的阵列创建。
我想要什么,是旧实体的新的实体完全取代,这意味着:
entity.property => update (easy)
entity.child => delete old child if not exists in the new,
update if already exists (easy),
or add if it doesnt exist already
我到目前为止有:
items tempitem = new items() { id = item.id };
_context.items.Attach(tempitem);
_context.items.ApplyCurrentValues(item);
foreach (var itemchild in item.children)
{
childEntity tempchild= new childEntity() { parentid = item.id };
_context.childEntity.Attach(tempchild);
_context.childEntity.ApplyCurrentValues(itemchild);
}
这让我更新基地实体很好,并且还可以更新任何现有的实体。
它没有让我删除旧的实体 - 试图做一个
item.children.Clear()
但没有任何反应,而且还当我尝试添加一个新的子实体(即在绑定到分离的) - 什么也没有发生任何。
这不能太难,可以吗?我想转向的NHibernate里的东西看起来不那么臃肿,更简单但功能强大...
我不知道这里发生了什么。我在回答下面看到了你的评论,并在下面写下我自己的评论(说我没有删除任何答案(我不能删除答案),而且我昨天回答时根本没有答案)。现在两条评论都没有了。我不知道为什么。我猜你会因为某种原因而生气,认为我确实删除了其他答案。我只能告诉你,我只是写了我的答案,这就是我所做的。 – Slauma
我把这个带到Meta:http://meta.stackexchange.com/q/114513/174063。他们说这里没有删除的答案。如果你确定你已经在这里提交了你自己的答案,并且这里还有其他答案,你应该在Meta上描述它作为一个可能的错误。 – Slauma
你好,对于那时的反应感到抱歉,我以为这是你的所为。显然,评论也被删除了,所以有些事情是非常错误的。当我有更多的时间时,我也会注册meta并追求这一点。 –