2014-06-05 5 views
1

WCF 데이터 서비스와 함께 LINQKIT를 사용하는 예를 통해 온라인 리소스를 찾을 수 없습니다. 가능한가? 나는 그렇게하려고 노력하지만 오류 방법 방문에 ExpressionVisitor 클래스에 실패 -이 어떤 대안이 있습니까 처리되지 않은 표현 형식 10000WCF 데이터 서비스와 함께 LINQKIT을 사용할 수 있습니까?

throw new Exception (string.Format ("Unhandled expression type: '{0}'", exp.NodeType));

.

표현의 예는 다음과 같다. 그것은 성공적으로 빌드하지만 런타임에 위의 오류를 제공합니다.

  DataServiceQuery<ClassName> query = (DataServiceQuery<ClassName>) 
      (from c in data.<ClassName>.AsExpandable() 
      where c.<ChildClass>.Any(SamplePredicate.Compile()) 
      select c); 

답변

1

는 네, 그것은 가능하다 :

try 
     { 
      PoseidonReadEntities poseidonReadEntities = new PoseidonReadEntities(GetServiceUri()); 

      var predicate = PredicateBuilder.New<vw_PDS_Grants>(true); 


      predicate = predicate.And(g => g.Trust == trShortCode); 

      if (searchTGN.HasValue) 
      { 
       predicate = predicate.And(g => g.TrustGrantNo == (int)searchTGN); 

      } 

      DataServiceQuery<vw_PDS_Grants> dsGrantQuery = poseidonReadEntities.vw_PDS_Grants; 

      DataServiceQuery<vw_PDS_Grants> gq = (DataServiceQuery<vw_PDS_Grants>)dsGrantQuery.Where(predicate).OrderByDescending(g => g.GrantID).Take((int)rowsToReturn); 

      var grants = await Task.Factory.FromAsync(gq.BeginExecute(null, null), asyncResult => gq.EndExecute(asyncResult)); 

      DS_vw_PDS_Grants = grants.ToList(); 

      return DS_vw_PDS_Grants; 
     } 
     catch (DataServiceQueryException Ex) 
     { 
      string error = Ex.Message; 
     } 

     return null;