EF6을 사용하여 Find(key1.a, key1.b)
메서드를 사용하여 복합 기본 키로 엔티티를 가져올 수 있습니다. 내가 EF 키으로 검색하는 두 가지 방법이 있습니다 이유를 알고 싶습니다, 또한EF 복합 키의 배열로 찾기
:
이var keys = new [] {new {a = 1, b = 2}, new {a = 2, b = 3}, /*etc*/};
var entities = context.Items.Find(key1.a, key1.b, key2.a, key2.b, ..., keyN.a, keyN.b);
UPD 즉, 수행하는 여러 개의 키에 대해 동일한 것이 가능 Find
및 LINQ의 Where
, Single
는
에 대한 확장 방법을 쓸 수 있습니다. DbSet.Find 메서드가 문서화되어 있으며 단일 엔터티 만 반환합니다 –
@SirRufo : fixed, thanks. 나는 그때의 해결 방법을 알고 싶다. –
일부 RDBM은 [이와 비슷한] 구문 (https://stackoverflow.com/a/8011075/314291)을 사용하여 복합 기본 키와 같은 튜플과 함께 'IN'을 허용합니다. 그러나 [너무 SqlServer] (https://connect.microsoft.com/SQLServer/feedback/details/299231/add-support-for-ansi-standard-rowvalue-constructors). '(KeyCol1 = Value1 AND KeyCol2 = Value2) OR (KeyCol1 = ..) '을 사용하여 쿼리를 분할해야합니다. – StuartLC