【发布时间】: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