2012-06-16 103 views
0

我有一个问题:增加了许多对许多实体框架

我有3个表:

  1. 用户
  2. 菜单
  3. userMenu的

userMenu的含有IdMenu和IdUser。

在我的DataModel实体框架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宾馆卡马拉

回答

0

问题是最有可能的是,在itemUsers.Menu项目不存在于你当前的objData上下文中。这可能是您从另一个上下文对象加载它们,或者它们是在代码中创建的,但从未添加到objData.Menus集合中。