Santax for Joins using Linq/lambda & Nhibernate
本文关键字:amp Nhibernate lambda for Joins using Linq Santax | 更新日期: 2023-09-27 18:11:07
最初我有这个linq语句:
refusedZones = session.Query<ZoneBO>().Where(x => x.StateId == _config.RefusedStateId).ToList();
工作良好,我得到我的列表与业务对象。现在我需要更改这个查询,我仍然想要返回强类型业务对象列表,但是我必须与另一个表进行连接。
我已经测试了这个SQL查询,它的工作方式我想要的:
select z.ZoneName, z.ZoneSerial from zone z join transactionzone tz on z.ZoneId = tz.ZoneId where z.StateId = 3 and tz.StateId = 16
我的问题是我如何用Lambda表达式linq做到这一点?我想它会像这样开始…
var refusedZones = session.Query<ZoneBO>().Join(.......expression here....).ToList();
有谁能帮我一下吗?我刚接触linq,觉得很困惑。
您将需要添加一个从Zone到TransactionZone的引用。您是如何设置映射的?
一旦你有了一个引用设置,就没有必要在LINQ中显式地写连接了。
你可以这样做:
session.Query<ZoneBO>()
.Where(x => x.State.Id == 3 && x.TransactionZone.State.Id == 16)
.ToList()