Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何改进linq查询和删除in子句_Linq_Nhibernate - Fatal编程技术网

如何改进linq查询和删除in子句

如何改进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

我有一个linq查询

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
  };