0

(EF)データベースを備えたASP.NETWebFormsアプリケーションがあります。

基本的に、私が関わっている2つのテーブルは、ユーザーとロールです。ロールには、Id(pk)、UserId(fk)、Type:Stringがあります。これには、Admin、User、Moderator、Publisherなどが含まれます。Usersには、Id(pk)、Email、NameFirst、NameLast、Password、Usernameがあります。

Designerでは、ユーザーをロールに接続して、ロール->UserId==ユーザーのIDにしました。

そして今、RoleProviderから継承するクラスを作成した後、関数GetRolesForUser(string username)で、ユーザー名のIDを持つユーザーのすべての役割の列挙型を取得したいと思います。

したがって、たとえば、ユーザーAgonを取得した場合、後で使用するためにすべての彼の役割の列挙型を取得し、それらを上記のメソッドでstring[]として返すことができるようにしたいと思います。

そのため、何時間にもわたる頭の麻痺の試みの後、私は一貫したエラーを受け取っています。ここからどこに行くべきかわからない:

    public override string[] GetRolesForUser(string username)
    {
        using (SMEntities db = new SMEntities())
        {
            User user = db.Users.First(x => x.Username == username);
        }

        //throw new NotImplementedException();
    }
4

1 に答える 1

1

これで列挙型が実際に機能する場所はわかりませんが、次の点についてはどうでしょうか。

    using (SMEntities db = new SMEntities())
    {
        User user = db.Users.First(x => x.Username == username);
        return user.Roles.Select(r => r.Type).ToArray();
    }
于 2013-02-11T22:02:05.493 に答える