Linq to sql 将Linq中的sql语句分成两部分或更多部分,具体取决于程序条件
我是林克的一个原则人物,所以我需要一些帮助 我不知道在Linq语法中,通过将查询分解为两个或更多部分 就像下面的例子一样 记录将在每个步骤中立即从sql server下载,或者在我开始查看所有数据时发送到服务器? 例如,当我绑定一些对象时(例如Datagrid)Linq to sql 将Linq中的sql语句分成两部分或更多部分,具体取决于程序条件,linq-to-sql,Linq To Sql,我是林克的一个原则人物,所以我需要一些帮助 我不知道在Linq语法中,通过将查询分解为两个或更多部分 就像下面的例子一样 记录将在每个步骤中立即从sql server下载,或者在我开始查看所有数据时发送到服务器? 例如,当我绑定一些对象时(例如Datagrid) System.Linq.IQueryable结果=db.Panorami; 字节FoundOneContion=0; //第一步 如果(!string.IsNullOrEmpty(Title)) { Result=Result.Wher
System.Linq.IQueryable结果=db.Panorami;
字节FoundOneContion=0;
//第一步
如果(!string.IsNullOrEmpty(Title))
{
Result=Result.Where(p=>SqlMethods.Like(p.Title,“%”+Title+“%”);
FoundOneContion=1;
}
//步骤2
如果(!string.IsNullOrEmpty(Subject))
{
Result=Result.Where(p=>SqlMethods.Like(p.Subject,“%”+Subject+“%”);
FoundOneContion=1;
}
如果(FoundOneContion==0)
{
返回null;
}
其他的
{
返回Result.OrderBy(p=>p.Title).Skip(PS*CP).Take(PS);
}
如果不幸,Linq立即下载所有记录
(因此我的怀疑是对的!)
是否存在解决此问题的语法
例如:三元运算符(条件?真部分:假部分)
如有任何建议,我将不胜感激。谢谢大家 上述方法不枚举查询-因此不进行数据库调用。已构造查询,但未执行该查询
您可以通过调用
foreach
,或调用调用调用foreach
的某些方法(例如ToList
,ToArray
)或调用GetEnumerator()
)来枚举查询。这将导致执行查询。上述方法不会枚举查询-因此不会进行数据库调用。已构造查询,但未执行该查询
您可以通过调用
foreach
,或调用调用调用foreach
的某些方法(例如ToList
,ToArray
)或调用GetEnumerator()
)来枚举查询。这将导致执行查询。非常感谢!!对回复完全满意:))非常感谢!!对答复完全满意:))
System.Linq.IQueryable<Panorami> Result = db.Panorami;
byte FoundOneContion = 0;
//step 1
if (!string.IsNullOrEmpty(Title))
{
Result = Result.Where(p => SqlMethods.Like(p.Title, "%" + Title + "%"));
FoundOneContion = 1;
}
//step 2
if (!string.IsNullOrEmpty(Subject))
{
Result = Result.Where(p => SqlMethods.Like(p.Subject, "%" + Subject + "%"));
FoundOneContion = 1;
}
if (FoundOneContion == 0)
{
return null;
}
else
{
return Result.OrderBy(p => p.Title).Skip(PS * CP).Take(PS);
}