我正在使用断开连接的 POCO 对象。
当我坚持一个对象时,它工作正常!
当我想保留相关对象时,问题就开始了。
例如:
从数据层检索对象:
using (MyContext ctx = new MyContext ())
{
return ctx.Users.First();
}
这个对象回到业务层,在那里,我添加了一些子记录,见下文(只是为了说明):
objectUser.Permissions.Add(new Permission());
objectUser.Permissions.Add(new Permission());
权限是对用户权限的导航。
然后,我想将此 objectUser 持久化回数据库,然后我这样做:
using (MyContext ctx = new MyContext ())
{
ctx.Users.Attach(objectUser);
ctx.ObjectStateManager.ChangeObjectState(objectUser, System.Data.EntityState.Modified);
ctx.SaveChanges();
}
但是在使用的第一行中,我收到错误消息:“ObjectStateManager 中已经存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象”。
有谁知道我做错了什么?
我只想持久化对象及其相关对象。
谢谢你帮助我。
路易斯·古斯塔沃
我试图分离实体,但在这种情况下,我丢失了所有相关对象,我需要这些相关对象以便我可以添加/删除。
之后,我想将它们持久化回数据库。
我在做一个愚蠢的架构吗?
路易斯·古斯塔沃