2017-04-07 12 views
2

linq述部を使用してフィルター・コードを生成しようとしています。 !C#Linq述部生成リストからすべてのヌル値を削除する

public static Expression<Func<ContactPermitsSearch, bool>> PermitNumberNotNull() 
    { 
     Expression<Func<ContactPermitsSearch, bool>> predicate = contactPermit => contactPermit.PermitNumber != null; 
     return predicate; 
    } 

によって呼び出されます:私はオブジェクト= nullを持つ述語を使用する場合

public static IQueryable<ContactPermitsSearch> FilterByNameMailingPermit(this IQueryable<ContactPermitsSearch> queryable, string search, bool filterOn) 
    { 
     var predicate = PredicateBuilder.True<ContactPermitsSearch>(); 

     predicate = predicate.And(PermitNumberNotNull()); 

     var filtered = queryable.AsExpandable().Where(predicate); 
     return filtered; 
    } 

を生成されるSQL文はPermitNumberNotNull述語文が含まれていません。

これを修正するにはどうすればよいですか?

答えて

0

明らかにコードに間違いはありません。私はPermitNumberNotNull()とマージした後にデバッガでpredicateを調べると、not null述語が式ツリーの一部であることがわかります。

contactPermit.PermitNumberは、が必要であるため、はnullではないことがわかります。プロパティです。したがって、述語は単に無視されます。

+0

これが答えです!ありがとうございました!それはnullableではないvarchar(7)です。 –

関連する問題