내가Enumerable.Empty <T>() .AsQueryable(); 이 방법은 엔티티 인프라에 LINQ를 지원하고
이 방법은 엔티티 인프라에 LINQ를 지원하며에서 직접 사용할 수 없는 런타임 오류가 발생하고 사용자 코드에서 직접 사용할 수 없습니다 당신의 코드.
설명 현재 웹 요청 을 실행하는 중 처리되지 않은 예외가 발생했습니다. 오류에 대한 정보와 코드에서 오류가 발생한 위치에 대한 정보는 에 대한 스택 추적을 검토하십시오.
예외 정보 : System.InvalidOperationException :이 메서드 은 LINQ to Entities 인프라를 지원하며 코드에서 직접 사용 된 은 아닙니다. 나는 모든 검색 기준을 필터링하는 것은 모든 검색 필드에 일치하는 모든 레코드를 추가로 포함하는 것보다는 쿼리를 생산하기 위해 노력하고
(OR
보다는 AND
할 것). 나는 빈에서 뭔가 시작해야 var results = Enumerable.Empty<T>().AsQueryable();
을 도입 할 때
public static IQueryable<T> ApplySearch<T>(this IQueryable<T> queryable, SearchModel search) where T : class
{
var results = Enumerable.Empty<T>().AsQueryable();
if (search != null)
{
if (search.PolicyNumber.HasValue && typeof (IPolicyNumber).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByPolicyNumber(search));
}
if (search.UniqueId.HasValue && typeof (IUniqueId).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByUniqueId(search));
}
if (!string.IsNullOrWhiteSpace(search.PostCode) && typeof(IPostCode).IsAssignableFrom(queryable.ElementType))
{
results = results.Union(queryable.SearchByPostCode(search));
}
}
return results;
}
메커니즘은 실패하기 시작했다.
빈 세트에서 시작하여 맨 위에 Linq-to-SQL 결과를 어떻게 작성합니까?
당신은 오직 당신이 결과를 unioning에 의해 빈 세트를 필요로하지 않도록 코드를 리팩토링 할 수
추측 :'queryable.Take (0)'이 트릭을 할 수 있습니다. 이 예외가 발생하는 곳에서 정확히 ***을 지적하는 것이 좋습니다. – spender
'.ToList()'바로 앞에 @spender가 있습니다. –
어느'.ToList'입니까? – spender