私はPOCプロジェクトのEntity Frameworkで遊んでいます。私が持っている私のデータベースで エンティティフレームワーク多対多CRUD
Category<-------CategoryProduct ------->Product
(表は、モデル内のエンティティである参加ところ。)
私はどのように行うことができますが/を選択/更新または削除を挿入これは?
私はPOCプロジェクトのEntity Frameworkで遊んでいます。私が持っている私のデータベースで エンティティフレームワーク多対多CRUD
Category<-------CategoryProduct ------->Product
(表は、モデル内のエンティティである参加ところ。)
私はどのように行うことができますが/を選択/更新または削除を挿入これは?
は単に... EFは、デフォルトでCategoryProduct
エンティティを生成しません、代わりにあなたが使用して関係を削除/作成する必要がありますそのテーブルを操作するために、2つのFKS Product
に1とCategory
の1で構成されProduct.Categories
またはCategory.Products
コレクション。
I.e.
var pc = from c in ctx.Categories
from p in c.Products
select new {CategoryID = c.ID, ProductID = p.ID};
を、更新が作成しません:
product.Categories.Remove(category); // or visa versa
は、そのテーブルの行を取得するために、すなわちテーブルを照会するには、次の行を削除するには
product.Categories.Add(category); // or category.Products.Add(product);
:行を追加しますPKは(変更できない)更新することができ、すべての列、すなわち、行の列のどれもがあるので、行自体を更新することができないので意味、(当然の削除を除きます)。
ホープこれは
アレックス・ジェームス
二つの方法、私は考えることができる少なくとも二つあります
オプション2はより良い方法ですが、現在のところ、CategoryProductに関連付けられた他のデータがある場合、それは機能しません。 CategoryProduct
テーブルを想定し
感謝を助けます。それが私のしたことです。中産階級を削除しました。したがって、モデルではMany To Manyであり、CategoryProductはなくなりました。 – Shuaib
アレックスに感謝します。しかし、私はどのように製品のコラムを終わらせることができますか? このエラーが発生しました: エンティティオブジェクトは、IEntityChangeTrackerの複数のインスタンスで参照できません。 コードは次のとおり パブリックstatic int型の更新(生成物C)を用い {(SimvideoEntities CTX =新しいSimvideoEntities()){ ctx.Attach(C); Common.SetModified(CTX、C)。 戻り値ctx.SaveChanges(true); } } – Shuaib
[OK]を私は更新&削除作業を持っているが、私は文脈から最初にレコードを取得し、それを保存/削除する必要があります。 – Shuaib
アレックスに感謝したアレックス。良い仕事を続けてください。 – Shuaib