【问题标题】:SQL to LINQ to SQL expression without JoinSQL to LINQ to SQL 表达式没有加入
【发布时间】:2017-10-16 09:46:38
【问题描述】:

在实体框架中使用导航将 SQL 查询转换为下面的查询时

SELECT DISTINCT 

a.ApplicationID, eA.EmployeeID AS AppID, eA.EmailID AS AppEmail, 
eA.Title + eA.Name AS Applicant, eR.EmployeeID, eR.Title + eR.Name 
AS Employee, eR.EmailID AS Email, r.Title AS Role, r.RoleID, t .Title AS 
Task, t .TaskID, d .ShortName AS AppDeptSN, a.Reminders, '' AS SubTaskID
FROM 
dbo.Application_TaskLog AS a INNER JOIN
dbo.Task AS t ON t .TaskID = a.TaskID INNER JOIN
dbo.Role AS r ON r.RoleID = t .RoleID INNER JOIN
dbo.Application_Role AS ar ON ar.ApplicationID = a.ApplicationID AND 
ar.RoleID = t .RoleID INNER JOIN
dbo.Employee AS eR ON eR.EmployeeID = ar.EmployeeID INNER JOIN
dbo.Application AS app ON app.ApplicationID = a.ApplicationID INNER JOIN
dbo.Employee AS eA ON eA.EmployeeID = app.EmployeeID LEFT OUTER JOIN
dbo.Departments AS d ON eA.DepartmentID = d .DepartmentID

我写了下面的函数来填充gridview

public List<Application_TaskLog> GetAppTaskLogDistinct(int appID)
{
    var context = new FPSDB_newEntities();
    var data = (from atl in context.Application_TaskLog
                where atl.ApplicationID == appID
                && !atl.Application.ApplicationClosed && !atl.Completed
                select atl).Distinct().ToList();
    return data;
}

Distinct() 在 SQL 中无法正常工作。我很困惑如何使用我在 SQL 中使用的 Distinct

【问题讨论】:

  • 请展示您尝试过的内容,因为不清楚您卡在哪里。我假设您尝试了 LINQ 的 join 语句。您在哪里遇到问题?
  • 另外,LINQ-to-SQL 和实体框架是两种不同的技术。
  • context.Application_TaskLog 已经返回了不同的 Application_TaskLog 记录,并且查询中没有任何重复它们的内容,因此 Distinct() 没有任何区别。

标签: sql entity-framework navigation distinct


【解决方案1】:

context.Application_TaskLog 已经返回不同的 Application_TaskLog 记录,并且查询中没有任何重复它们的内容,因此 Distinct() 没有任何区别

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多