【问题标题】:Rewriting a SQL with LINQ [closed]用 LINQ 重写 SQL [关闭]
【发布时间】:2014-09-28 16:10:46
【问题描述】:

我有这个SQL

select * from ADDRESSES where ZIPCODE ='66210'and ADDRESS_K in 
       (select ADDRESS_K from GROUPADDRESS where GROUP_K in 
       (select GROUP_K from GROUPS where NPI = 'groupnpi' and TAXID = 'grouptin') 
        and ADDRESSTYPE_RTK = '_REI0PVM65')

我想改写成LINQ

有人可以帮忙把它转换成LINQ吗?这是我能做到的。

【问题讨论】:

  • 您必须在 on 上运行查询(例如,使用 Linq to Entities)。你在哪里运行它?例如,您有 dBContext.ADDRESSESdBContext.GROUPADDRESSdBContext.GROUPS 对象吗?

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


【解决方案1】:

这没有经过测试,但应该会给你一个好的开始(这有助于How can you handle an IN sub-query with LINQ to SQL?

var innerInnerQuery = from g in GROUPS
                      where NPI == "roupnpi" 
                          && TAXID == "grouptin"
                          && ADDRESSTYPE_RTK == "_REI0PVM65"
                      select g.GROUP_K;
var innerQuery = from ga in GROUPADDRESS
                 where innerInnerQuery.Contains(ga.GROUP_K)
                 select ga.ADDRESS_K;
var query = from a in ADDRESSES
            where ZIPCODE == "66210"
                && innerQuery.Contains(a.ADDRESS_K)
            select a;

【讨论】:

    【解决方案2】:

    这是我能想到的... 请让我知道它是否有效

    var innerQuery = from Group_K in GroupAddress
                      where Group_K ==
                             (
                                  from iq in Groups
                                  where iq.NPI.Contains("groupnpi")
                                  where iq.TAXID == "grouptin"
                                  where iq.ADDRESSTYPE_RTK == "REI0PVM65"
                                  select iq.NPI
                             )
                             select Group_K.Address_K;
    
            var result = from a in addresses
                         where a.ZipCode.Contains("groupnpi")
                         where a == innerQuery
                         select a;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多