不带联接的SQL到LINQ到SQL表达式
在实体框架中使用导航在查询下方转换SQL查询时不带联接的SQL到LINQ到SQL表达式,sql,entity-framework,navigation,distinct,Sql,Entity Framework,Navigation,Distinct,在实体框架中使用导航在查询下方转换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
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;
}
公共列表GetAppTaskLogDistinct(int-appID)
{
var context=new FPSDB_newEntities();
var data=(来自context.Application\u TaskLog中的atl)
其中atl.ApplicationID==appID
&&!atl.Application.ApplicationClosed&!atl.Completed
选择atl).Distinct().ToList();
返回数据;
}
Distinct()在SQL中无法正常工作。我对如何使用Distinct感到困惑,因为我在SQL中使用了Distinct。Application\u TaskLog已经返回Distinct
Application\u TaskLog
记录,并且查询中没有重复记录的内容,所以Distinct()
没有任何区别上下文。应用程序\u TaskLog
已返回不同的应用程序\u TaskLog
记录,并且查询中没有重复记录,因此distinct()
没有任何区别请显示您尝试了什么,因为不清楚您在哪里卡住了。我想你试过LINQ的join
语句。问题出在哪里?另外,LINQ to SQL和Entity Framework是两种不同的技术。要连接两个列,请参阅上下文。Application_TaskLog
已返回distinctApplication_TaskLog
记录,并且查询中没有重复记录的内容,因此distinct()
没有任何区别。请显示您尝试了什么,因为不清楚您被卡在了哪里。我想你试过LINQ的join
语句。问题出在哪里?另外,LINQ to SQL和Entity Framework是两种不同的技术。要连接两个列,请参阅上下文。应用程序\u TaskLog
已返回不同的应用程序\u TaskLog
记录,并且查询中没有重复记录的内容,因此distinct()
没有任何区别。