2011-01-26 3 views
1

필자는 관계형 데이터베이스, SQL 및 엔터티에 익숙합니다. 정확한 용어를 사용하지 않으면 용서해주십시오.동일한 개체 인 Entity Framework의 여러 인스턴스를 연결하려면 어떻게합니까?

내가하려는 것은 동일한 행을 다른 행과 두 번 연관시키는 것입니다.

IE :

거래는 항목과 다 대다 관계를 가지고있다.

그래서 나는 단순히 :

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

문제는 (사람이 동일한 항목 중 두 가지를 구입하면 말) 나는 두 번 같은 항목을 추가 할 수 있다는 것입니다. 이 점에 대한 명백한 이유는 저 밖에 있습니다. 그러나이 매우 일반적인 데이터베이스 개념이 일반적으로 어떻게 처리되는지는 잘 모릅니다.

답변

1

데이터 모델을 다시 생각해 볼 필요가 있습니다. 아마도 구매 항목에 여러 항목이 포함되어 있어도 관계형 모델에서 많은 항목부터 많은 항목으로 정의되어 있더라도 반드시 이동해야하는 것은 아닙니다. 이 시점에서 다 대다 관계가 유지되는 중간 테이블은 그 자체가 사용되고 추적되는 비즈니스 엔티티가됩니다.

"PurchaseItem"은 이제 구매와 관련된 항목의 단일 인스턴스이며 항목과 별도의 고유 한 데이터 및 관련성을 갖습니다. 이는 특정 구매에 대한 광고 항목으로, 자체적으로 독립적이며 고유하며 구매되는 항목을 다시 참조하기 만합니다. 따라서 구매에는 품목 목록보다는 PurchaseItem 목록이 필요합니다.

+0

중간 테이블이 올바른 방법 일 수 있다고 생각했지만 확실하지 않았습니다. 빠른 답변 주셔서 감사합니다. –