2010-07-26 2 views
0

여기에있는 Google의 게시물을 파고 들었습니다. 기존 엔티티에 하위 엔티티를 저장하는 데 문제가 있음을 해결하는 데 도움이되는 내용을 찾을 수 없습니다.엔티티 프레임 워크 1 대 다수 관계 저장 문제

상품을 보관할 장바구니가 있다고 가정하면 ShoppingCartItem 엔티티 컬렉션이있는 ShoppingCart 엔티티가 있음을 의미합니다.

내 컨트롤러에서 쇼핑 카트가 있는지 확인하고 엔티티가 있으면 검색합니다. 그렇지 않은 경우 새로운 엔티티입니다 (Entitystate는 Added로 표시됨). 그런 다음 이미 기존 컬렉션에 항목을 추가하여 계속 진행합니다 (항목이 이미있는 경우) 이미 생성 된 ShoppingCart의 변경 사항을 저장할 때만 문제가 발생합니다. 데이터베이스에 새 장바구니를 추가하는 중입니다. 기존 항목과 새 항목 모두 ...

따라서 하나의 Shoppingcart와 2 명의 자녀가 있고 3 개의 새 항목을 추가하면 ShoppingCart 테이블과 7 개의 ShoppingCartItem 항목에 2 개의 ShoppingCart 항목이 생깁니다.

AddCore를 사용하여 ShoppingCartItem을 추가하자마자 ShoppingCart 엔티티가 추가됨으로 표시됩니다 ...

어떻게 방지 할 수 있습니까?

고마워,

스테판

답변

1

가장 간단한 해결책은 상세 기관과 기존은 shoppingCart을 retreive을하고 어떤 AddObject 호출을 수행 할 수 없습니다. 대신 SaveChanges() 메서드를 호출하면 새 ShoppingCart 엔터티를 만들지 않고 데이터베이스에 변경 내용을 씁니다.

+0

안녕하세요 Devart, 나는 물건이 어떻게 만들어 졌는지 재 설계하여 마침내 작동하게했습니다. 장바구니를 먼저 만들면 모든 항목이 저장되지 않으므로 저장해야합니다. 새로 만든 장바구니의 ShoppingCart ID를 생성하려는 각 항목에 할당합니다. 새 항목을 추가하려면 장바구니 생성을 건너 뛰고 모든 것이 매력처럼 작동하며 더 구분됩니다. 그러나 테스트 프로젝트에서 나중에 다른 것들을 위해 유용한 기술이 될지 알아보기 위해 제안을 시도 할 것입니다. 감사합니다. –

관련 문제