Linq查询没有操作员

时间:2015-10-14 12:16:53

标签: c# entity-framework linq sql-to-linq-conversion

我是linq的新手,我想知道如何在linq查询中写入不等于(!=),如此处所示的SQL:

select 
    projects.Name 
from 
    Projects 
inner join 
    projectPermissions on (projects.FK_Owner_ID != projectpermissions.FK_User_ID and Projects.Project_ID = projectPermissions.FK_Project_ID) 
where 
    ProjectPermissions.FK_User_ID = 53;

var projects = (from project in this.context.Projects
                join shareProjects in this.context.ProjectPermissions on
                       new { UserID = project.FK_Owner_ID, ProjectID = project.Project_ID } equals
                       new { UserID = shareProjects.FK_User_ID, ProjectID = shareProjects.FK_Project_ID }
                where shareProjects.FK_User_ID == userId
                select new
                       {};

需要帮助 - 提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以随时使用where,加入仅支持相等的键比较:

var projects =from project in this.context.Projects
              join shareProjects in this.context.ProjectPermissions on
                   project.Project_ID equals shareProjects.FK_Project_ID
              where  project.FK_Owner_ID != shareProjects.FK_User_ID &&
                     shareProjects.FK_User_ID == userId
              select new{};

答案 1 :(得分:-1)

你必须否定它:

on (!(projects.FK_Owner_ID == projectpermissions.FK_User_ID) and Projects.Project_ID = projectPermissions.FK_Project_ID)