C# 添加多对多实体框架
我有一个问题: 我有三张桌子:C# 添加多对多实体框架,c#,asp.net,entity-framework-4,C#,Asp.net,Entity Framework 4,我有一个问题: 我有三张桌子: 使用者 菜单 用户菜单 UserMenu包含IdMenu和IdUser 在我的DataModelEntityFramework4.0中,我用我的表菜单的现有菜单填充我的用户模型和User.Menu(菜单是导航属性) 我必须保存用户,并将每个相关的菜单项保存在用户菜单表中 我得到以下例外情况: ObjectStateManager不包含带有 对“SGGED.Model.Menu”类型的对象的引用 代码 Users objUser = new Users(); ob
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();
如何处理这个问题
致以最良好的祝愿
米尔顿·卡马拉看看这篇关于多对多关系的帖子:
问题很可能是
itemUsers.Menu
中的项不存在于当前的objData上下文中。这可能是您从另一个上下文对象加载它们,或者它们是在代码中创建的,但从未添加到objData.Menus集中