SQL Server でビューを作成し、それをGridView
自分の.aspx
ページで使用する必要があります。ビューは、Entity Framework を介してアプリケーションにマップされます。
これが私の例です:
SELECT User.UserName, User.UserId
FROM User
WHERE NOT EXISTS (SELECT UsersInRoles.RoleId FROM UsersInRoles
WHERE UsersInRoles.UserId = User.UserId AND UsersInRoles.RoleId = 'AdminRole')
User
とtableの関係UsersInRoles
は 1 対多です。
AdminRole
ASP.NET アプリケーションで値を渡すことができる必要があります。
ビューでパラメータを使用できません (つまり、使用@Role
は許可されていません)。
にバインドできるのはビューとテーブルのみであるGridView
ため、ストアド プロシージャ (パラメータがオプションになる可能性がある場合) はここでは適していません。
LEFT OUTER JOIN
の代わりに多分を使用する回避策はありNOT EXISTS
ますか? このようにJOIN
して、テーブルに を置いて、アプリケーションの Entity FrameworkUsersInRoles
からフィールドをマップし、そこに条件を追加することができます (節を使用)。UsersInRoles
EntityDataSource.Where