Искам да използвам динамична LINQ заявка за търсене с някакъв текст във всички свойства в клас. използвам следната функция за създаване на израз. Предавам име на свойство и текст за търсене на метода. В този метод, ако типът на свойството е String, тогава той работи добре. ако типът на свойството е int, DateTime, GUID. тогава не работи.
Както знаем Съдържа метод само за масив от елементи или за низ. Мисля, че стойността на свойството трябва да въведе cast към низ. И така, как да го направя? Решението с обяснение е пълна помощ.
i Събрах код от това.
public static Expression<Func<T, bool>> ContainsExp<T>(string propertyName, string contains)
{
var parameterExp = Expression.Parameter(typeof(T), "type");
var propertyExp = Expression.Property(parameterExp, propertyName);
MethodInfo method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
var someValue = Expression.Constant(contains, typeof(string));
var containsMethodExp = Expression.Call(propertyExp, method, someValue);
return Expression.Lambda<Func<T, bool>>(containsMethodExp, parameterExp);
}
String.Contains
наDateTime
? - person Raphaël Althaus   schedule 11.10.2013