首页 > 解决方案 > 将 SQL 命令转换为 Linq Lambda 函数?

问题描述

SELECT     
    dbo.Projects.TaskMaster, dbo.Projects.Location, dbo.Photos.Photo
FROM
    dbo.Photos 
INNER JOIN
    dbo.Projects ON dbo.Photos.ProjectID = dbo.Projects.ProjectID
WHERE
    (dbo.Projects.IsTopProject = 1)

我需要使用 Linq Lambda 来实现这个 SQL 命令。

标签: c#sql-serverasp.net-mvclinqasp.net-core

解决方案


像这样的东西怎么样:

from photo in dbContext.Photos
join project in dbContext.Projects
on photo.ProjectID equals project.ProjectID
where project.IsTopProject == 1
select new { 
   photo.Photo, 
   project.TaskMaster,
   project.Location
};

如果您真的想使用 lambda,请试一试:

dbContent.Photos
   .Join(dbContext.Projects.Where(x => x.Project.IsTopProject == 1), 
         photo => photo.ProjectID,
         project => project.ProjectID,
         (photo, project) => new { 
            photo.Photo, 
            project.TaskMaster,
            project.Location 
         });

推荐阅读