Я пытаюсь понять динамические деревья linq и выражения. Очень в основном пытается сделать равные, предоставляя столбец и значение в виде строки. Вот что у меня пока
private IQueryable<tblTest> filterTest(string column, string value)
{
TestDataContext db = new TestDataContext();
// The IQueryable data to query.
IQueryable<tblTest> queryableData = db.tblTests.AsQueryable();
// Compose the expression tree that represents the parameter to the predicate.
ParameterExpression pe = Expression.Parameter(typeof(tblTest), "item");
Expression left = Expression.Property(pe, column);
Expression right = Expression.Constant(value);
Expression e1 = Expression.Equal(left, right);
MethodCallExpression whereCallExpression = Expression.Call(
typeof(Queryable),
"Where",
new Type[] { queryableData.ElementType },
queryableData.Expression,
Expression.Lambda<Func<tblTest, bool>>(e1, new ParameterExpression[] { pe }));
// Create an executable query from the expression tree.
IQueryable<tblTest> results = queryableData.Provider.CreateQuery<tblTest>(whereCallExpression);
return results;
}
Это прекрасно работает для столбцов в БД. Но не в свойствах в моем коде, например
public partial class tblTest
{
public string name_test
{ get { return name; } }
}
Ошибка не может быть в том, что она не может быть преобразована в SQL. Я попытался переписать свойство как выражение
Большое спасибо