我有一个表示数据库中一个表的类,它被定义为:
public class MyClass{
public int MyClassId{get;set;}
public string Name{get;set;}
public string LastNamw{get;set;}
public DateTime From{get;set;}
public DateTime To{get;set;}
}
字符串
我想对Oracle数据库运行一些搜索查询。
现在的问题是:
var list = context.MyClass
.Where(x => x.From>= FromMyDate)
.Where(x => x.To <= ToMyDate);
var list = context.MyClass
.Where(x => x.From>= FromMyDate && x.To <= ToMyDate);
型
使用多行where条件或一行更好?为什么...请
据我所知,当我想搜索第一个条件的结果时,我会使用多个where子句。
3条答案
按热度按时间mhd8tkvw1#
不重要
你只是创建了一个传递给Oracle Provider的表达式树,而生成SQL查询是Provider的工作。即使两者之间的表达式树略有不同,它仍然会生成相同的SQL。我喜欢使用SQL分析器来确保我的linq查询生成高效的SQL。
lqfhib0f2#
我将按照约翰·斯基特的回答,由Vossad01发布。
正确的Linq where子句
owfi6suc3#
根据我的经验,如果使用带有导航属性的多个“where”子句,EF会为EF 6生成多个连接。您可以使用EF Profiler获取查询。我总是使用那个惊人的工具检查查询。如果您使用EF 6,我建议您不要相信结果:)