0

我正在使用带有 ASP.NET 4.0 的实体框架。这是一个简单的问题,我必须为我的用户已经安装的所有小工具隐藏一个安装按钮。我正在使用转发器进行数据绑定和 UI 生成。

数据库架构如下

  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)

注意:如果有更简单的查询会产生相同的结果,我很想知道。这只是从我的脑海中蹦出来的

4

1 回答 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,但会带来您要求的结果。

于 2012-08-17T09:29:43.100 回答