엔터티에 Linq를 사용하는 Contains() 함수 해결 방법
질문:
사용 방법 지원 부족에도 불구하고 Linq to Entities 쿼리 내의 Contains() 함수는 무엇입니까?
답변:
업데이트: Entity Framework 기준( EF) 버전 4 이상에서는 Contains()가 직접 지원됩니다.
이전 버전의 EF의 경우 해결 방법이 필요합니다.
Contains()에 대한 사용자 정의 확장 방법
다음 확장 방법을 생성합니다.
<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>( this ObjectQuery<TEntity> query, Expression<Func<TEntity, TValue>> selector, IEnumerable<TValue> collection) { // ... (implementation remains the same as in the provided code) }</code>
선택적 정적 컬렉션 버전
선택적으로 다음과 같이 정적 컬렉션을 허용하는 버전을 생성할 수 있습니다. 입력:
<code class="csharp">public static IQueryable<TEntity> WhereIn<TEntity, TValue>( this ObjectQuery<TEntity> query, Expression<Func<TEntity, TValue>> selector, params TValue[] collection) { return WhereIn(query, selector, (IEnumerable<TValue>)collection); }</code>
사용법:
이 확장 메서드를 사용하면 Linq to Entities 쿼리에서 다음과 같이 Contains()를 사용할 수 있습니다.
<code class="csharp">public static void Main() { using (MyObjectContext context = new MyObjectContext()) { // Using method 1 - collection provided as collection var contacts1 = context.Contacts.WhereIn(c => c.Name, GetContactNames()); // Using method 2 - collection provided statically var contacts2 = context.Contacts.WhereIn(c => c.Name, "Contact1", "Contact2", "Contact3", "Contact4"); } }</code>
위 내용은 Linq to Entities의 Contains() 함수를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!