假設我們有兩個類構成表達式:選擇器+謂詞?
public class EntityA
{
public EntityB EntityB { get; set; }
}
public class EntityB
{
public string Name { get; set; }
public bool IsDeleted { get; set; }
}
兩個表達式選擇和謂詞
Expression<Func<EntityA, EntityB>> selector = c => c.EntityB;
Expression<Func<EntityB, bool>> predicate = c => c.IsDeleted && c.Name == "AAA";
我需要寫一個返回組合表達式像
Expression<Func<TSource, bool>> Compose<TPropType>(Expression<Func<TSource, TPropType>> selector, Expression<Func<TPropType, bool>> predicator)
{
// Expression API ???
}
在我的例子的方法結果應該是
Expression<Func<EntityA, bool>> exp = Compose(selector, predicate);
什麼就相當於提前
Expression<Func<EntityA, bool>> exp = c => c.EntityB.IsDeleted && c.EntityB.Name == "AAA";
感謝。
這最後'c.Name == 「AAA」'應該是'c.EntityB.Name == 「AAA」',對吧? – AakashM 2012-01-10 09:58:56
是的,你是對的。糾正。 – qmicron 2012-01-10 11:04:52