IQueryable と T 型のオブジェクトがあります。
IQueryable().Where(o => o.GetProperty(fieldName) == objectOfTypeT.GetProperty(fieldName)) を実行したい
それで ...
public IQueryable<T> DoWork<T>(string fieldName)
where T : EntityObject
{
...
T objectOfTypeT = ...;
....
return SomeIQueryable<T>().Where(o => o.GetProperty(fieldName) == objectOfTypeT.GetProperty(fieldName));
}
参考までに、GetProperty は有効な関数ではありません。この機能を実行するものが必要です。
金曜日の午後に脳が溶けてしまっているのでしょうか、それとも複雑なことでしょうか?
objectOfTypeT 次のことができます...
var matchToValue = Expression.Lambda(ParameterExpression
.Property(ParameterExpression.Constant(item), "CustomerKey"))
.Compile().DynamicInvoke();
これは完全に機能しますが、今は2番目の部分が必要です:
return SomeIQueryable().Where(o => o.GetProperty(fieldName) == matchValue);