[英]How to pass an Expression into a LINQ query?
我可以將Expression傳遞給LINQ Select()方法:
public IQueryable<T> GetInfo(long limit, Expression<Func<MyType, T>> selector)
{
return DbSet.Where(t => t.id < limit).Select(selector)
}
如何使用LINQ樣式的查詢來做同樣的事情?
public IQueryable<T> GetInfo(long limit, Expression<Func<MyType, T>> selector)
{
var result = from t in DbSet
where t.id < limit
select selector(t) // doesn't work
return result
}
那么你可以使用:
var result = (from t in DbSet
where t.id < limit
select t).Select(selector);
...但你不能只使用查詢表達式中的選擇,做為所隱含包裝,你不想額外的層。
目前尚不清楚為什么你想在這里使用查詢表達式,請注意 - 我強烈建議你對這兩種LINQ樣式感到滿意並使用當時更合適的東西 - 在這種情況下你是原始樣式碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.