2012-06-16 105 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集合中。