c# 实体 linq 和 linqpad 区别
c# entity linq and linqpad differences
使用分组查询,按结果构建时我得到不同的结果
这在 LinqPad 中有效,但在代码中无效
Name = s.Key.FirstName + " " + s.Key.LastName ?? "Unknown User"
这在代码中有效,但在 LinqPad 中无效
Name = s.Key.FirstName != null ? s.Key.LastName + " " + s.Key.LastName : "Unknown User"
两者都适用
Name = String.IsNullOrEmpty(s.Key.FirstName) ? "Unknown User" : s.Key.FirstName + " " + s.Key.LastName,
谁能解释一下原因
LinqPad 默认使用 Linq2Sql。
在 EF
和 Linq2Sql
之间运行的 LINQ 肯定存在差异。这几乎肯定是您 运行 的目标。
LINQ 根据实际运行组合查询的提供程序的不同而有所不同。
还有很多,但这只是一个开始:
- Linq2Sql
- Entity Framework
- 对象的 Linq
- Linq 到 Xml
- Linq 事件 (Reactive Extensions)
你可以自己写LINQ providers
尽管如果您告诉 Linqpad 添加一个 EF 库,它会消耗您创建的一个:
使用分组查询,按结果构建时我得到不同的结果
这在 LinqPad 中有效,但在代码中无效
Name = s.Key.FirstName + " " + s.Key.LastName ?? "Unknown User"
这在代码中有效,但在 LinqPad 中无效
Name = s.Key.FirstName != null ? s.Key.LastName + " " + s.Key.LastName : "Unknown User"
两者都适用
Name = String.IsNullOrEmpty(s.Key.FirstName) ? "Unknown User" : s.Key.FirstName + " " + s.Key.LastName,
谁能解释一下原因
LinqPad 默认使用 Linq2Sql。
在 EF
和 Linq2Sql
之间运行的 LINQ 肯定存在差异。这几乎肯定是您 运行 的目标。
LINQ 根据实际运行组合查询的提供程序的不同而有所不同。 还有很多,但这只是一个开始:
- Linq2Sql
- Entity Framework
- 对象的 Linq
- Linq 到 Xml
- Linq 事件 (Reactive Extensions)
你可以自己写LINQ providers
尽管如果您告诉 Linqpad 添加一个 EF 库,它会消耗您创建的一个: