【问题标题】:Including values from external table in a LINQ statement在 LINQ 语句中包含来自外部表的值
【发布时间】:2018-02-09 12:09:02
【问题描述】:

我想为以下 SQL 查询编写 LINQ 查询:

    SELECT A.ID
    FROM TABLE_1 A, TABLE_2 B
    WHERE A.ID = B.ID
    AND B.STATEID IN (SELECT C.STATEID FROM STATE C WHERE C.REGIONID = 1)

为此,我设法进行了以下查询:

    var var1 = (from a in db.table_1
                join b in db.table_2
                on a.Id equals b.Id
                where b.stateid = 
                select new
                {
                   a.Id
                }).ToList();)

我如何在此处包含所有 StateIDs,其中 RegionId1 以获得必要的输出。

【问题讨论】:

  • 您的问题到底是什么?你实际收到了什么?我认为你必须加入表格
  • 加盟怎么样?

标签: c# asp.net-mvc linq


【解决方案1】:

你可以使用Any:-

where db.States.Any(x => x.RegionId == 1 &&  x.StateId == b.StateId)
select...

【讨论】:

    【解决方案2】:

    你可以试试这个..

    var var1 = (from a in db.table_1
                join b in db.table_2
                on a.Id equals b.Id
                where db.State.Any(c=> c.RegionId == 1 && c.StateId == b.StateId)
                select new
                {
                   a.Id
                }).ToList();)
    

    【讨论】:

      【解决方案3】:

      您的等效 Linq 查询将是:

      var result = (from a in db.table_1
                    from b in db.table_2 
                     where a.Id == b.Id
                     && db.State.Any(c=>c.REGIONID  == 1 && b.StateId == c.StateId) 
                      select new
                      {
                         a.Id
                      }).ToList();
      

      【讨论】:

      • 这会编译吗?
      • @RahulSingh 感谢您的指出,我认为应该是 Any 就像您发布的一样
      【解决方案4】:

      试试这个,

      var var1 = (from a in db.table_1
                      join b in db.table_2
                      on a.Id equals b.Id
                      where (db.State.Where(x => x.RegionId == 1).Select(x => 
                             x.StateId)).Contains(b.Id)
                      select new
                      {
                         a.Id
                      }).ToList();)
      

      【讨论】:

        猜你喜欢
        • 2016-01-07
        • 2013-12-19
        • 1970-01-01
        • 2017-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多