Entity Framework와 외래 키 관계를 만드는 방법은 무엇입니까?

asp.net-mvc entity-framework foreign-key-relationship

문제

몇 가지 외래 키 관계가있는 테이블에서 내 데이터베이스에 새 행을 만들고 싶습니다. 그리고 어떤 순서로 어떤 호출을해야하는지에 대한 핸들을 얻을 수 없었습니다. 이것은 내가 지금까지 가지고있는 것이다 :

db.Models.Order order = DB.Models.Order.CreateOrder( apple );
order.CustomerReference.Attach( ( from c in db.Customer where c.Id == custId select c ).First() );
db.SaveChanges();

코드가 두 번째 줄에서 실패하고 있습니다.

이 관련 끝과 연결된 원본 개체가 추가, 삭제 또는 분리 상태 인 경우 연결은 유효한 작업이 아닙니다. NoTracking 병합 옵션을 사용하여로드 된 개체는 항상 분리됩니다.

어떤 아이디어?

수락 된 답변

(John에게 문법 수정에 감사드립니다)

그래서 나는 그것을 알아 내었다. 이것은 당신이해야 할 일입니다.

db.Models.Order order = DB.Models.Order.CreateOrder( apple );
order.Customer = (from c in db.Customer where c.Id == custId select c).First();
db.SaveChanges();

나는 그것이 사람들을 돕기를 바랍니다.


인기 답변

엔티티 참조를 사용하지 않는 이유는 무엇입니까? 귀하의 방법은 추가 SELECT 문을 일으킬 것입니다.

훨씬 더 좋은 방법은 CustomerReference 클래스와 EntityKey 를 사용하는 것입니다.

order.CustomerReference = new System.Data.Objects.DataClasses.EntityReference<Customers>();
order.CustomerReference.EntityKey = new EntityKey("ModelsEntities.Customers", "Id", custId);


Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.