0

質問があります:

私は3つのテーブルを持っています:

  1. ユーザー
  2. メニュー
  3. UserMenu

UserMenuには、IdMenuとIdUserが含まれています。

私のDataModelEntityFramework 4.0では、ユーザーモデルを入力し、User.Menu(メニューはナビゲーションプロパティ)にテーブルMenuの既存のメニューを入力しています。

Userを保存し、関連する各メニュー項目をUserMenuテーブルに保存する必要があります。

次の例外が発生します。

ObjectStateManagerには、タイプ'SGGED.Model.Menu'のオブジェクトへの参照を持つObjectStateEntryが含まれていません。

コード

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();

この問題を処理する方法は何ですか?

よろしくお願いします、

ミルトムカマラ

4

2 に答える 2

0

itemUsers.Menuこの問題は、現在の objData コンテキストに項目が存在しない可能性が最も高いです。これは、別のコンテキスト オブジェクトからそれらをロードしたか、コードで作成されたが objData.Menus セットに追加されていない可能性があります。

于 2012-06-16T06:57:24.727 に答える
0

多対多の関係については、次の投稿をご覧ください。

EF との多対多の関係

于 2012-06-16T03:44:00.340 に答える