【问题标题】:Santax for Joins using Linq/lambda & Nhibernate使用 Linq/lambda 和 Nhibernate 进行连接的 Santax
【发布时间】:2014-07-02 16:23:28
【问题描述】:

最初我有这个 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

我的问题是如何在 linq 中使用 Lambda 表达式执行此操作?我想它会像这样开始......

var refusedZones = session.Query<ZoneBO>().Join(.......expression here....).ToList();

任何人都可以帮助我解决 santax 问题,对 linq 非常陌生,发现它令人困惑。

【问题讨论】:

    标签: c# linq nhibernate linq-to-sql


    【解决方案1】:

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

    一旦有了参考设置,就无需在 LINQ 中显式编写连接。

    你可以这样做:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多