【问题标题】:select width entity framework and linq选择宽度实体框架和 linq
【发布时间】:2010-05-17 09:14:52
【问题描述】:

你有 2 个表任务和任务日,关系为 1..n

我想选择所有具有名为“可见”= true 属性的任务日的任务

我试过了:

 db.TDP_Missioni.Include("TDP_MissioniDestinazioni").where(p => p.TDP_MissioniDestinazioni.visible == true)

但是有一个错误。事实上,从 p.TDP_MissioniDestinazioni 我看不到表的属性。我认为这是因为关系是 1..n.

我该怎么做?

谢谢

【问题讨论】:

    标签: c# asp.net linq entity-framework


    【解决方案1】:

    由于关系是 1:N,因此 TDP_MissionDestinazioni 应该是一个 collection 的宣教日。试试这个:db.TDP_Missioni.Include("TDP_MissioniDestinazioni").where(p => p.TDP_MissioniDestinazioni.All(d => d.visible))

    【讨论】:

      【解决方案2】:

      以上使用的是 Lambda 表达式而不是 LINQ。试试:

      var query = from m in db.TDP_Missioni
                  where m.TDP_MissioniDestinazioni.Any(md => md.Visible)
                  select m;
      

      或者要修复你的 lambda 查询,你需要做的就是使用类似的东西:

      db.TDP_Missioni.Include("TDP_MissioniDestinazioni").
          Where(p => p.TDP_MissioniDestinazioni.Any(d => d.Visible));
      

      与 TDP_Missioni 表相关的 TDP_MissioniDestinazioni 是一个集合(基于关系),因此您需要遍历每个记录,以便能够访问每个 MissionDay 的 visible 属性。

      【讨论】:

        猜你喜欢
        • 2010-10-29
        • 1970-01-01
        • 2017-07-07
        • 1970-01-01
        • 2013-01-25
        • 1970-01-01
        • 2022-12-12
        • 2018-11-30
        • 2013-07-30
        相关资源
        最近更新 更多