我曾問如何動態編譯LINQ查詢與物體houlgap的所有屬性問題已經熱情地向的屬性的所有屬性給我下面的代碼動態拉姆達與對象
private static Func<MyEntity, bool> GenerateLambda(MyEntity _myEntity, PropertyInfo propertyInfo)
{
var instance = Expression.Parameter(propertyInfo.DeclaringType, "i");
var property = Expression.Property(instance, propertyInfo);
var propertyValue = Expression.Constant(propertyInfo.GetValue(_myEntity, null));
var equalityCheck = Expression.Equal(property, propertyValue);
return Expression.Lambda<Func<MyEntity, bool>>(equalityCheck, instance).Compile();
}
如果要查詢的屬性直接是對象的成員,但對於我來說,它之間有一箇中間屬性,此功能非常有用。對於例如Func代表用於另一種類型,例如Func <ABCMyEntity,bool>
而MyEntity是此對象(ABCMyEntity.MyEntity)的成員。傳遞的PropertyInfo對象是MyEntity的成員。
我知道這聽起來非常混亂,但我無法更好地解釋它。 (也許因爲我不是母語的人)。請問問題中是否有不清楚的地方。
它是由Constructing Dynamic LINQ queries with all properties of an object
謝謝Tomas,我現在就試試吧! – ganeshran 2010-11-16 15:02:49