如何改进linq查询和删除in子句
我有一个linq查询如何改进linq查询和删除in子句,linq,nhibernate,Linq,Nhibernate,我有一个linq查询 var query = from record in session.Query<Record>() from brwSet in session.Query<BorrowerSet>() from brw in session.Query<Borrower>() where
var query = from record in session.Query<Record>()
from brwSet in session.Query<BorrowerSet>()
from brw in session.Query<Borrower>()
where
brw.PrintOrder == 1 && brwSet.PrintOrder == 0
&& record.Package.BorrowerSet.Contains( brwSet )
&& brwSet.Borrower.Contains( brw )
select new Summary()
{
BorrowerFirstName = brw.Contact.FirstName,
BorrowerLastName = brw.Contact.LastName,
LoanPackageID = record.Id
};
此查询没有包含
var query =
from record in session.Query<Record>()
from brwSet in record.Package.BorrowerSet
where brwSet.PrintOrder == 0
from brw is brwSet.Borrowers
where brw.PrintOrder == 1
select new Summary()
{
BorrowerFirstName = brw.Contact.FirstName,
BorrowerLastName = brw.Contact.LastName,
LoanPackageID = record.Id
};
您打算通过这些建议的更改实现什么?e、 g.你可以用连接替换其中的两个from,并将连接条件放在join语句中,而不是放在where子句中,但这与现有代码的作用是一样的,所以何必麻烦呢。为了美观起见,我想使用额外的from子句。我更关心的是删除contains调用,因为这将转换为SQL中的in子句。这在brwSet之后不太起作用。借用者是借用者的集合。nhibernate 3似乎也不支持record.Package.借用者集合中的from brwSet语句
record.Package.BorrowerSet.Contains( brwSet ) && brwSet.Borrower.Contains( brw )
var query =
from record in session.Query<Record>()
from brwSet in record.Package.BorrowerSet
where brwSet.PrintOrder == 0
from brw is brwSet.Borrowers
where brw.PrintOrder == 1
select new Summary()
{
BorrowerFirstName = brw.Contact.FirstName,
BorrowerLastName = brw.Contact.LastName,
LoanPackageID = record.Id
};