我有一个问题:
我有3张桌子:
UserMenu包含IdMenu和IdUser。
在我的DataModel Entity Framework 4.0中,我正在填充我的用户模型并使用我的表菜单的现有菜单填充User.Menu(菜单是导航属性)。
我必须在UserMenu表中保存用户并保存每个相关的菜单项。
我得到以下异常:
ObjectStateManager不包含带有的ObjectStateEntry 引用'SGGED.Model.Menu'类型的对象。
代码
Users objUser = new Users();
objUser.name = itemUsers.name.Trim();
objUser.email = itemUsers.email.Trim();
objUser.password = Util.HashString("12345");
objUser.effdt = DateTime.Now;
objData.Users.AddObject(objUser);
foreach (var itemMenu in itemUsers.Menu)
{
objData.ObjectStateManager.ChangeObjectState(itemMenu, EntityState.Unchanged);
}
affRows = objData.SaveChanges();
处理这个问题的方法是什么?
最诚挚的问候,
Miltom Camara
答案 0 :(得分:0)
看看这篇关于多对多关系的帖子:
答案 1 :(得分:0)
问题很可能是itemUsers.Menu
中的项目在您当前的objData上下文中不存在。这可能是您从另一个上下文对象加载它们,或者它们是在代码中创建的,但从未添加到objData.Menus集中。