这些 linq 查询样式的真正含义
本文关键字:linq 查询 样式 这些 | 更新日期: 2023-09-27 18:33:51
这些 linq 查询可以用这两种方式编写。但是选择哪种方式似乎确实是一项令人困惑的任务。请解释这些命令的性能差异(如果有)。
from table1Details in objDataContext.Table1s where table1Details.SomeId == 15
select new {....};
from table1Details in objDataContect.GetTable<Table1>() where table1Details.SomeId==15
select new {...};
这根本不是与 LINQ 相关的区别。 数据上下文提供了一个属性Table1s
,在内部,它只是调用GetTable<Table1>()
。 这是一种方便的方法,几乎没有性能成本,绝对没有功能差异。
DataContext.GetTable Method
此方法是查询的主要入口点。当强烈 创建类型化数据上下文,封装新生成的属性 调用此方法。例如,
Customers
属性是 生成,返回GetTable<Customer>
.
因此,对于您的情况,没有区别。您的DataContext
有一个属性Table1
,当您使用它调用objDataContext.Table1s
直接访问它时objDataContext.GetTable<Table1>()
但是选择哪种方式似乎确实是一项令人困惑的任务。
为什么?它有什么令人困惑的?这两种方式都行不通吗?你读过手册吗?
此方法是查询的主要入口点。创建强类型数据上下文时,新生成的属性将封装对此方法的调用。例如,生成一个返回
。GetTable<Customer>
的Customers
属性
GetTable<T>()
只是提供了一种访问数据集的通用方法,具有运行时查找(GetTable<UnknownEntityType>()
将抛出),而不是生成的编译时检查属性。