Why is code inspection missing an implementation in an extension method?
So, I'm building an expression that will be used to query a DbSet. I'm using the LinqKit PredicateBuilder so manipulate expressions.
Expression<Func<ICommon, bool>> commonPredicate = listingCriteria.Predicate; if (dataContext != null) { dataContext.DataCommon.AsExpandable().Where(commonPredicate); }
DataCommon implements ICommon.
The code compiles and runs as expected, and identical code works as expected within LinqPad 4.
R# is barking, indicating that it "Cannot resolve method 'Where...." (see attached screenshot of VS.NET tooltip).
Interestingly enough, the code inspection tooltip indicates that there are only three canditates for the Where method - two for IEnumerable and one for IQueryable. This is incorrect, as it's missing the IQueryable<T> Queryable.Where(this IQueryable<T>, Expression<Func<T, bool>>) signature as a candidate (see attached screenshot of LinqPad tooltip).
Is this a bug, or am I trying to do something really egregious here, and R# is smarter than the compiler?
Attachment(s):
LINQPad 4_2012-02-13_15-48-38.png
Export - Microsoft Visual Studio_2012-02-13_15-38-58.png
Please sign in to leave a comment.