2015-10-14 68 views
0

我是新來的LINQ,我想知道如何在LINQ查詢寫不等於(=!)像SQL如下所示:LINQ查詢有沒有算子

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 
         {}; 

需要幫助 - 在此先感謝

+0

您需要在哪裏編寫它? –

+0

像SQL我寫project.FK_Owner_ID!= shareProject.FK_User_ID –

+0

我想不是運營商(用戶名)之間和等於運算符(專案編號)之間 –

回答

-1

你要否定它:

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

它不允許我這樣做的話,你不能其聲明之前使用該項目的局部變量即使我宣佈其第一個變種項目 –

+0

然後如果它在施放時不適合你,那麼先施放它們,然後否定。我不知道是什麼原因導致你的錯誤。 ##編輯:嘗試在選擇之前打開var項目...。 – iDraGoN

+0

運營商! (!(project.FK_Owner_ID等於shareProjects.FK_User_ID)和project.Project_ID等於shareProjects.FK_Project_ID) –

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{};