【发布时间】:2012-04-02 09:31:28
【问题描述】:
这是 linq-to-sql
我有很多不同的类都在执行相同的查询,但投影结果略有不同。理想情况下,我希望能够将查询放在一个地方,并将投影传递给 Select 方法。它适用于具体类型:
public void GetResults() {
var junk = db.SiteProducts.Select(Project());
}
public Expression<Func<DbEntities.SiteProduct, string>> Project() {
return p => p.ProductAlert;
}
但是当我尝试返回一个匿名类型时,它失败了
public void GetResults() {
var junk = db.SiteProducts.Select(Project());
}
public Expression<Func<DbEntities.SiteProduct, TResult>> Project<TResult>() {
return p => new { p.ProductAlert };
}
我完全理解为什么泛型类型推断在第二种情况下会失败。但是有没有什么技巧——除了从头开始制作我自己的表达式——我错过了可以让它工作的技巧?
【问题讨论】:
-
@Robert - 该示例似乎试图为 Where 编写一个替代品,这有点不同。但我可能会遗漏一些东西。不过谢谢。
-
还有这个:stackoverflow.com/questions/4683427,这可能更接近你想要做的事情。
-
@Robert - 最后一个链接是正确的 - 你能回答吗?
标签: c# linq linq-to-sql devforce