【发布时间】:2010-11-04 04:45:01
【问题描述】:
我试图从 linq 到 sql 查询中只返回几列,但如果我这样做了,它会引发异常:
不允许在查询中显式构造实体类型“InVision.Data.Employee”
代码如下:
return db.Employees.Select(e => new Employee()
{ EmployeeID = e.EmployeeID, FirstName = e.FirstName,
LastName = e.LastName }).ToList();
如果我返回所有内容,那么它将引发有关循环引用的异常,因为它需要被序列化才能在 javascript 中使用,所以我真的需要限制列...感谢您可以给我解决这个问题的任何提示。
【问题讨论】:
-
我认为不返回整个 Employee 对象没有任何强有力的论据。性能当然不是其中之一。 Linq 会注意不返回任何关联,除非它们被访问。
-
@cdonner 我想当以下四个条件为真时返回所有列是合适的:A)您的 SQL 实例有 SSD 驱动器,并且 B)有 10GBps 到 SQL SAN 单元的连接, C) 在所有 SQL 服务器和应用程序服务器上拥有两倍的内存,并且 D) 拥有比您知道的更多的 SQL 核心许可证。
标签: sql linq explicit construction