0

我在ASP.NET 4.0中使用實體框架。這是一個簡單的問題,我必須爲我的用戶已安裝的所有小工具隱藏「安裝」按鈕。我正在使用中繼器進行數據綁定和UI生成。選擇未使用實體框架安裝的應用程序4

數據庫架構如下安裝用戶

Apps 
---------- 
AppId 
Appname 
Description 

應用程序將在下面的表被添加到

InstalledApps 
------------ 
Rid 
UserId 
AppId 

所以實體結束了這樣

Users 
Apps 
InstalledApps 

我想實體框架相當於以下SQL

SELECT AppId,AppName,Description FROM Apps WHERE Apps.AppId NOT IN (SELECT AppId FROM InstalledApps WHERE UserId = 1)

注:如果有更簡單的查詢會產生相同的結果,我很想知道。這只是突然從我的頭

回答

0

我假設你的表是相互連接的,你應該從InstalledApps

var f = from c in dbContext.InstalledApps 
    where c.UserId != 1 
    select new 
    { 
    c.AppId, 
    c.App.AppName, 
    c.App.Description 
    }; 

這不會產生相同的SQL查詢,反而會帶來結果,你問。