简单的Linq动态查询问题
在 Linq 动态查询,Scott Guthrie 展示了一个示例 Linq 查询:
var query =
db.Customers.
Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new( CompanyName as Name, Phone)");
注意投影 new( CompanyName as Name, Phone)
。如果我有一个这样的类:
public class CompanyContact {
public string Name {get;set;}
public string Phone {get;set;}
}
如何使用 CompanyContact 数据类型本质上“转换”他的结果,而不对每个记录执行 foreach 并将其转储到不同的数据结构中?据我所知,唯一可用的 .Select 是 Dymanic Query 版本,它只接受字符串和参数列表。
In Linq Dynamic Query, Scott Guthrie shows an example Linq query:
var query =
db.Customers.
Where("City == @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new( CompanyName as Name, Phone)");
Notice the projection new( CompanyName as Name, Phone)
. If I have a class like this:
public class CompanyContact {
public string Name {get;set;}
public string Phone {get;set;}
}
How could I essentially "cast" his result using the CompanyContact data type without doing a foreach on each record and dumping it in to a different data structure? To my knowledge the only .Select available is the Dymanic Query version which only takes a string and parameter list.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我从您引用的文章中可以看出,动态查询方法返回 IQueryable<>对象,这意味着正常的 Select() 应该可用。
您可能必须明确指定 Select 的类型
A far as I can see from the article you cite, The dynamic query methods return IQueryable<> objects, which mean the normal Select() should be available.
You may have to explicitly give the type for the Select