代码之家  ›  专栏  ›  技术社区  ›  YodasMyDad

Linq 2 SQL语法帮助

  •  1
  • YodasMyDad  · 技术社区  · 14 年前

    我几乎完成了将MySQL应用程序转换为Linq2SQL的工作,但在最后一次SQL查询中,我的头脑还很困难

    SELECT a.URL, b.URL AS DuplicateURL
    FROM Pages a
    INNER JOIN Pages b ON a.MetaDescription = b.MetaDescription
                       AND a.PageID <> b.PageID
    WHERE a.DomainID = @reportid
      AND b.DomainID = @reportid
      AND LENGTH(TRIM(a.MetaDescription)) > 0
      AND a.URL < b.URL
    ORDER BY a.URL ASC
    

    关于如何在Linq2SQL中创建这个查询,您还可以给我一些语法帮助吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Lazarus    14 年前

    它是这样的:

    var DuplicatePages = 
        from a in DBContext.Pages
        join b in DBContext.Pages on a.MetaDescription equals b.MetaDescription
        where (a.PageID <> b.PageID) && (a.DomainID == ReportID) && 
        (b.DomainID == ReportID) && (a.MetaDescription.Trim().Length > 0) && 
        (a.URL < b.URL)
        orderby a.URL
        select new { Url = a.URL, DuplicateUrl = b.URL };
    
        2
  •  2
  •   Steven    14 年前

    var reportId = ...;
    
    var duplicates =
        from a in db.Pages
        from b in db.Pages
        where a.MetaDescription == b.MetaDescription
        where a.PageID != b.PageID
        where a.DomainID == reportId
        where b.DomainID == reportId
        where a.MetaDescription.Trim().Length > 0
        where a.URL < b.URL
        orderby a.URL
        select new { Url = a.URL, DuplicateUrl = b.Url }