: TemeldeParametreli Linq İfade Yardım
Expression<Func<TSource, bool>> CreatePropertyFilter<TSource>(Expression<Func<TSource, string>> selector, string value, TextMatchMode matchMode);
, bir özellik seçici alır (örnek: p = p.Name
), bir dize değeri ve StartsWith
olabilen bir sıralama değeri , EndsWith
, Contains
, Exact
; metin eşleme seçenekleri için.
nasıl LINQ2Entities anlayabileceği bir şekilde yöntemini uygulayabilirsiniz?
Expression<Func<string, bool>> comparerExpression;
switch (matchMode)
{
case TextMatchMode.StartsWith:
comparerExpression = p => p.StartsWith(value);
break;
case TextMatchMode.EndsWith:
comparerExpression = p => p.EndsWith(value);
break;
case TextMatchMode.Contains:
comparerExpression = p => p.Contains(value);
break;
default:
comparerExpression = p => p.Equals(value);
break;
}
var equalityComparerParameter = Expression.Parameter(typeof(IncomingMail), null);
var equalityComparerExpression = Expression.Invoke(comparerExpression, Expression.Invoke(selector, equalityComparerParameter));
var equalityComparerPredicate = Expression.Lambda<Func<IncomingMail, bool>>(equalityComparerExpression, equalityComparerParameter);
sorun Linq2Entities çağırma ifadeleri desteklemediği: Ben zaten böyle iç içe çağırma ifadeleri kullanarak yöntemini uyguladı.
Bu konuda herhangi bir öneriniz var mı?
Teşekkürler!
input => input.Member
Şu anda böyle bir yüklem ifadesini inşa edilir: bir seçici verilen Esasen
sayesinde, Ani! Tam olarak aradığım şey ve çekicilik gibi çalıştım! Sadece lambda ifadeleri dünyasında çok tazeim. –