【问题标题】:query convert from sql to linq查询从 sql 转换为 linq
【发布时间】:2013-08-19 14:22:30
【问题描述】:

我想将以下 SQL 查询转换为 LINQ

SELECT a.* 
FROM   campaign_newslettersubscriber_track a 
       INNER JOIN (SELECT DISTINCT campaignid, 
                                   Min(id) AS id 
                   FROM   campaign_newslettersubscriber_track 
                   GROUP  BY campaignid) AS b 
               ON a.campaignid = b.campaignid 
                  AND a.id = b.id 

【问题讨论】:

  • 实体框架还是 LINQ-to-SQL? C# 还是 VB.NET?

标签: asp.net sql-server linq sql-server-2008


【解决方案1】:
 var subquery = from c in objectContext.campaign_newslettersubscriber_track 
                         group c by c.campaignid into g
                         select new
                         {
                             id = g.Min(x => x.campaignid),
                             campaignId = g.Key
                         };

var n = from c in objectContext.campaign_newslettersubscriber_track 
        join cin in subquery.Distinct() on c.campaignid equals cin.campaignId
        select c;

【讨论】:

    【解决方案2】:

    我会研究名为Linqer 的工具。

    它可以使用 T-SQL 并将其转换为 LINQ、LINQ to SQL(使用 SqlMetal)或 LINQ to Entities(使用 EdmGen)。

    请注意,这不是免费工具(在撰写本文时,一个许可证 60.00 美元,更多更便宜)并且不会转换所有 T-SQL 函数,这里是支持的列表functions。

    【讨论】:

      猜你喜欢
      • 2014-11-16
      • 2018-09-18
      • 2014-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多