C# 加入nhibernate
我正在使用blow代码来加入nhibernate,这很好。但是我不想在加入前对两个查询都使用C# 加入nhibernate,c#,nhibernate,join,queryover,C#,Nhibernate,Join,Queryover,我正在使用blow代码来加入nhibernate,这很好。但是我不想在加入前对两个查询都使用.List,我想在加入后使用.List。我不太了解尼伯内特。。请为我提供帮助,我应该在下面的函数中进行哪些更改,以首先加入数据,然后在其上应用.List public IEnumerable<PGrp> GetSol() { _pGrpR = null; _pGrp = null; QueryOver<Phy, Phy>
.List
,我想在加入后使用.List
。我不太了解尼伯内特。。请为我提供帮助,我应该在下面的函数中进行哪些更改,以首先加入数据,然后在其上应用.List
public IEnumerable<PGrp> GetSol()
{
_pGrpR = null;
_pGrp = null;
QueryOver<Phy, Phy> activePhyQuery = GetDataQuery();
var phyGrpR = _session.QueryOver(() => _pGrpR)
.Where(
Subqueries.WhereProperty<PGrpR>(p => _pGrpR.PhyId).In(
activePhyQuery))
.List<PGrpR>();
IList<PGrp> pGrps = _session.QueryOver(() => _pGrp)
.Where(x => !x.AC)
.List<PGrp>();
var newPGrps = pGrps
.Join(
pGrpR,
p => p.Id,
x => x.PGrpId,
(p, x) => p
).Distinct().OrderBy(x => x.Name);
return newPGrps;
}
public IEnumerable GetSol()
{
_pGrpR=null;
_pGrp=null;
QueryOver activePhyQuery=GetDataQuery();
var phyGrpR=\u session.QueryOver(()=>\u pGrpR)
.在哪里(
子查询.WhereProperty(p=>\u pGrpR.PhyId).In(
activePhyQuery)
.List();
IList pGrps=\u session.QueryOver(()=>\u pGrp)
.其中(x=>!x.AC)
.List();
var newPGrps=pGrps
.加入(
pGrpR,
p=>p.Id,
x=>x.PGrpId,
(p,x)=>p
).Distinct().OrderBy(x=>x.Name);
返回新的PGRP;
}
谢谢PGrpR PGrpR=null;
IList pGrps=\u session.QueryOver(()=>\u pGrp)
.其中(x=>!x.AC)
.JoinAlias(pgrps=>pgrps.pGrpR,()=>pGrpR)//设置不动产名称
.OrderBy(()=>pGrpR.Name).Asc
.Select(projects.Distinct(projects.Property(()=>pGrpR.“propertyfordinct”))
.变压器使用(变压器.距离)
.List();
PGrpR pGrpR = null;
IList<PGrp> pGrps = _session.QueryOver(() => _pGrp)
.Where(x => !x.AC)
.JoinAlias(pgrps => pgrps.pGrpR, () => pGrpR) // Set real property name
.OrderBy(() => pGrpR.Name).Asc
.Select(Projections.Distinct(Projections.Property(() => pGrpR."PropertyForDistinct")))
.TransformUsing(Transformers.DistinctRootEntity)
.List<PGrp>();