e36*_*6M3 30 c# entity-framework entity-framework-4
这两种查询上下文的方式有什么区别吗?
Firm firm = base.context.Firms
.Where(f => f.SomeId == someId)
.Where(f => f.AnotherId == anotherId)
.FirstOrDefault();
Firm firm = base.context.Firms
.Where(f => f.SomeId == someId && f.AnotherId == anotherId)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
似乎链接完全可以完成AND条件.我不相信你可以链接OR语句.是否有理由更喜欢一个,或者一个更好/更有效的情况?
Jus*_*ner 43
他们应该都产生相同的最终结果(如果我没有记错的话),但我找到第二个是更具可读性和更好的节目原意.
更新
我刚刚使用LINQPad验证了上述语句.事实上,这两个查询都会生成相同的SQL.
例如:
context.SomeTable.Where(c => c.ParentId == null)
.Where(c => c.Name.Contains("F"))
.Select(c => c.Name);
Run Code Online (Sandbox Code Playgroud)
生产:
SELECT [t0].[Name]
FROM [SomeTable] AS [t0]
WHERE ([t0].[Name] LIKE @p0) AND ([t0].[ParentId] IS NULL)
Run Code Online (Sandbox Code Playgroud)
哪个是由以下产生的SQL:
context.SomeTable.Where(c => c.ParentId == null && c.Name.Contains("F"))
.Select(c => c.Name);
Run Code Online (Sandbox Code Playgroud)
你也可以再压缩一些东西(我觉得这个原因与上面相同):
var firm = base.context.Firms.FirstOrDefault(f => f.SomeId == someId
&& f.AnotherId == anotherId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51353 次 |
| 最近记录: |