나는이 내 프로젝트 (첫번째 EF5, DBContext, 데이터베이스)에서 folling 모델 :탐색 속성
고객
InvoiceAddress -> Addresses (table)
DeliveryAddress -> Addresses (table)
그래서 내가 같은 테이블이 외래 키가 있어요 .
나는 다음과 같은 문을 사용하여 고객의 개체를로드
다음 InvoiceAddress의 참조가로드 된 후var cst = ctx.Customers.Where(c => c.CustomerID == 2).SingleOrDefault();
ctx.Entry(cst).Reference(c => c.InvoiceAddress).Load();
는 DeliveryAddress도로드됩니다. 그러나 이것은 송장과 배달 ID가 동일 할 때만 발생합니다. 값이 같지 않으면 DeliveryAddress가로드되지 않습니다. 이 문제의 원인은 무엇입니까? 당신이 간절히 엔티티를 참조하면
, 당신이있어 SELECT
즉시 보내고 :
당신이 sugest하는 것이 센스를 만드십시오. 그러나, 나는 데이터베이스에서 두 개의 서로 다른 외래 키를 정의했으며 엔터티 모델에는 두 개의 키가있다. 배달 주소의 값을 변경하려고하면 '참조 무결성 제약 위반이 발생했습니다' – NRonald
@NRonald 키는 별도이지만 결국에는 동일한 데이터를 가리 킵니다. 나열된 예외는 자세히 설명하지 않고 ([http://stackoverflow.com/a/11596430/1180426] 및 [여기] (http://stackoverflow.com/a/12977804/1180426) 설명하기가 어렵습니다. 정말로 무슨 일이 일어나고 있는지 알고 ... –
'2 개의 다른'종점을 만들 수 있습니까? 지금 볼 수있는 유일한 해결책은 Save() 전에 모든 탐색 속성을 null로 설정하는 것입니다. – NRonald