次のテーブルを持つ ASP.NET カスタム ロール プロバイダーがあります。
[Role] RoleName( PK, nvarchar(100) );
[PermissionGroup] PermissionId( PK, int );PermissionGroupName( nvarchar(256) );
[PermissionGroupHasRole] PermissionGroupId( PK, int );RoleName( PK, nvarchar(100) );
[User] UserId( PK, int ); UserName( nvarchar(100) );
[UserHasPermission] UserId( PK, int ); PermissionGroupId( PK, int );
役割は「管理者」、「セールスマン」などの許可レベルに割り当てられ、ユーザーは多くのグループに属することができるという考え方です。たとえば、私はセールスマンであり、管理者でもあります。
私の質問は、特定のユーザーのロールのリストを取得するための SQL または Linq クエリはどのようなものですか? たとえば、次のような関数
List<string> GetRolesForUser( int UserId )
{
SQL Query.....
}