Nhibernate Linq至Nhiberate-Where条款
我试图找到一个答案,但在谷歌上找不到。可能没有搜索正确的术语,所以我想在这里问一下 下面返回我的所有联系人,而不是与发送的adjusterType相同的联系人Nhibernate Linq至Nhiberate-Where条款,nhibernate,linq-to-nhibernate,Nhibernate,Linq To Nhibernate,我试图找到一个答案,但在谷歌上找不到。可能没有搜索正确的术语,所以我想在这里问一下 下面返回我的所有联系人,而不是与发送的adjusterType相同的联系人 var contacts = from c in session.Linq<Contact>() select c; contacts.Where(c => c.ContactAdjuster.AdjusterType == adjusterType); 以下内容确实返回了预期的结果。它只返回符合调整器类型的触点。我相
var contacts = from c in session.Linq<Contact>() select c;
contacts.Where(c => c.ContactAdjuster.AdjusterType == adjusterType);
以下内容确实返回了预期的结果。它只返回符合调整器类型的触点。我相信这是因为我对LINQ缺乏了解
var contacts = from c in session.Linq<Contact>() select c;
contacts = contacts.Where(c => c.ContactAdjuster.AdjusterType == adjusterType);
提前感谢。Where子句在您的案例中返回IEnumerable。这是标准的LiNQ和C行为。它不是修改集合,而是基于where子句返回新集合
我想NHibernate LiNQ应该模仿这一点。Where子句在您的例子中返回IEnumerable。这是标准的LiNQ和C行为。它不是修改集合,而是基于where子句返回新集合
我认为NHibernate LiNQ应该模仿这一点。CatZ绝对正确,您没有修改联系人集合/枚举,而是在现有的基础上创建一个新的联系人集合/枚举,这就是您的第二条语句工作的原因 但这里不是重复CatZ语句,而是一个小附加: 你可以把它写在一句话里
var contacts =
from c in session.Linq<Contact>()
where c.ContactAdjuster.AdjusterType == adjusterType
select c;
或者干脆
var contacts = session.Linq<Contact>().Where(c => c.ContactAdjuster.AdjusterType == adjusterType);
CatZ是绝对正确的,您不是在修改contacts集合/枚举,而是在现有的基础上创建一个新的contacts集合/枚举,这就是您的第二条语句工作的原因 但这里不是重复CatZ语句,而是一个小附加: 你可以把它写在一句话里
var contacts =
from c in session.Linq<Contact>()
where c.ContactAdjuster.AdjusterType == adjusterType
select c;
或者干脆
var contacts = session.Linq<Contact>().Where(c => c.ContactAdjuster.AdjusterType == adjusterType);