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,觉得很困惑。

Santax for Joins using Linq/lambda & Nhibernate

您将需要添加一个从Zone到TransactionZone的引用。您是如何设置映射的?

一旦你有了一个引用设置,就没有必要在LINQ中显式地写连接了。

你可以这样做:

session.Query<ZoneBO>()
    .Where(x => x.State.Id == 3 && x.TransactionZone.State.Id == 16)
    .ToList()