2011-01-26 9 views
1

私は、リレーショナルデータベース、SQL、Entityの新機能です。正しい用語を使用しないと私を許してください。同じオブジェクトEntity Frameworkの複数のインスタンスを関連付ける方法を教えてください。

私がしようとしているのは、同じ行を別の行に2回関連付けることです。

IE:

トランザクションは、Itemと多対多の関係にあります。

だから、単にI:

internal static void AddItem(int itemID, Transaction transaction) 
    { 
     Item item = (from i in db.Items 
        where i.Id == itemID 
        select i).SingleOrDefault(); 

     transaction.Items.Add(item); 
     db.SaveChanges(); 
    } 

問題は、(人が同じ項目のうちの2つを購入した場合、例えば)私は二度同じ項目を追加することはできませんということです。私にはこれが明らかに理由があると確信していますが、この非常に一般的なデータベースの概念がどのようにして正常に処理されているか分かりません。

答えて

1

これは、データモデルを少し再考する必要があります。おそらく、購入アイテムに複数のアイテムが含まれていても、関係モデルでは多くのものか​​ら多くのものに定義されているとしても、必ずしもその方法があるとは限りません。この時点で、多対多の関係を維持している中間テーブルは、それ自体が使用されて追跡されるビジネスエンティティになっています。

「PurchaseItem」は、購入に関与する項目の単一インスタンスになり、アイテムとは別の独自のデータと関連性を持ちます。これは、購入した商品の独立したユニークな商品で、購入された商品を参照するだけです。したがって、Purchaseは、ItemのリストではなくPurchaseItemのリストを必要とする。

+0

中間テーブルがこれを行う正しい正しい方法かもしれないと感じましたが、わかりませんでした。速い答えに感謝します。 –

関連する問題