0

ASP.NET4.0でEntityFrameworkを使用しています。これは単純な問題で、ユーザーがすでにインストールしているすべてのガジェットの[インストール]ボタンを非表示にする必要があります。データバインディングと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 に答える