根据这个帖子
我们应该避免Select *
使用 sql
这是否也适用于 linq 查询?
编辑:
从Select *
for linq 我的意思是
from a in mytable select a;
我的意思是从选定的列中
from a in mytable select new{a.Prop1, a.Prop2};
根据这个帖子
我们应该避免Select *
使用 sql
这是否也适用于 linq 查询?
编辑:
从Select *
for linq 我的意思是
from a in mytable select a;
我的意思是从选定的列中
from a in mytable select new{a.Prop1, a.Prop2};
您不能SELECT *
使用 LINQ。生成的查询始终具有要选择的所有列名。因此,为了确定该表的列,读取表的定义不会造成延迟。但是从磁盘读取所有列数据并通过网络发送数据会有延迟。因此,如果您只需要表格中的几列,那么最好只选择这些列:
var query = from p in db.Person
select new { p.Id, p.Forename, p.Surname };
备注:使用 Linq to Object(内存中查询)你有相反的情况 - 你已经在内存中有对象。选择一组属性较慢,因为应该创建匿名对象,并且应该映射它的属性。但此操作不使用硬盘驱动器或网络,因此延迟无关紧要。
LINQ 查询(如果在数据集或集合上完成)发生在内存中。影响不如 DB 级别高,因为 DB 将数据存储在硬盘驱动器中。
由于您的 RAM 比 HDD 快,因此性能并不明显。但是将其应用于 LINQ 仍然不是一个坏主意