0

エンティティ フレームワークと linq を使用している多対多の関係テーブルに値を挿入したい。挿入クエリを作成したい (.net Framework 4)

以下はテーブルです

メニュー - menu_id、menu_name、menu_desc

ケータリング - Cater_id、Cater_name、enable_ind

関係テーブル Menu_Cater - menu_id、cate_id

この挿入と削除を実装する簡単な方法があれば、いくつかのケースで試してみましたが、うまくいかないようです

4

2 に答える 2

0

Menuおよびオブジェクトがあると仮定するとCater(ドロップダウン リストから or から)、単純に:

  1. Menu_Caterレコードを作成する
  2. 送信時に挿入するように設定します
  3. 変更を提出する

以下に示します。

VB.NET

Dim menu As Menu = GetSelectedMenu() ' However you get the Menu record
Dim cater As Cater = GetSelectedCater() ' However you get the Cater record

Dim relationship = New Menu_Cater()
' EITHER:
relationship.menu_id = menu.menu_id
relationship.cater_id = cater.cater_id
' OR:
' relationship.menu = menu
' relationship.cater = cater

Using db = new MyDataContext
    db.Menu_Cater.InsertOnSubmit( relationship )
    db.SubmitChanges()
End Using

C#

Menu menu = GetSelectedMenu(); // However you get the Menu record
Cater cater = GetSelectedCater(); // However you get the Cater record

Menu_Cater relationship = new Menu_Cater();
// EITHER:
relationship.menu_id = menu.menu_id;
relationship.cater_id = cater.cater_id;
// OR:
// relationship.menu = menu
// relationship.cater = cater

using (db = new MyDataContext()) {
    db.Menu_Cater.InsertOnSubmit(relationship);
    db.SubmitChanges();
}

変数/データベース フィールドの名前を少し変更する必要がある場合があります。また、データ コンテキストの種類に依存するdb.Save()代わりに、可能性があります。db.SubmitChanges()

于 2012-10-16T16:55:41.537 に答える
0

今すぐ必要かどうかはわかりませんが、その方法を示します。私の理解が正しければ、あなたはそのようなことを意味します。

public ActionResult Create(Cater cater, int menuId)
{
    //Find menu with our menu_id
    Menu menu = db.Menus.Where(m => m.menu_id == menuId).FirstOrDefault();

    //Add cater for this Menu
    menu.Cater.Add(cater);
    db.SaveChanges();

    return somethere...
}

public ActionResult Remove(int caterId, int menuId)
{
 //Choose menu, from him we will delete cater which we need 
 Menu menu = db.Menus.Where(m => m.menu_id == menuId).FirstOrDefault();

 //Find cater which we want delete from this Menu
 Cater cater = menu.Cater.Where(c => c.cater_id == caterId).FirstOrDefault();

 //Remove him from Table Menu_Cater
 menu.Cater.Remove(cater);
 db.SaveChanges();

 return somethere...
}

それで全部です。MVC4 での作業

于 2014-01-29T22:43:46.577 に答える