sha*_*mim 0 c# linq linq-to-entities
关于C#vs2008.my贝娄查询的工作向我显示错误.可以告诉我什么是问题以及如何解决这个问题.谢谢提前.
NorthwindDataContext db = new NorthwindDataContext();
List<Order> r = (from p in db.Orders
select new { p.OrderID, p.OrderDate });
Run Code Online (Sandbox Code Playgroud)
错误信息:
无法将类型'System.Linq.IQueryable'隐式转换为'System.Collections.Generic.List'.存在显式转换(您是否错过了演员?)
您正在尝试将查询表达式分配给List<>对象.那是错的.
您需要调用ToList()将查询结果转换为找到的订单列表,并使用匿名类型,因为您只选择部分数据并创建新的匿名对象:
var r = (from p in db.Orders
select new { p.OrderID, p.OrderDate }).ToList();
Run Code Online (Sandbox Code Playgroud)
请注意,匿名类型仍然是可枚举的,因为它仍然是通用的List<>,因此它仍然实现了通用IEnumerable<>接口.
要形成一个List<Order>,你需要检索完整的对象,所以select p正如John Rasch所说:
List<Order> r = (from p in db.Orders
select p).ToList();
Run Code Online (Sandbox Code Playgroud)
或者select new Order从你选择的字段中构建它们.
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |