表列将枚举和返回值作为字符串

本文关键字:字符串 返回值 枚举 | 更新日期: 2023-09-27 17:58:40

我有一个带有(EF)数据库的ASP.NET WebForms应用程序。

基本上,我关心的两个表是用户和角色。在Roles中有:Id(pk)、UserId(fk)、Type:String,其中包含Admin、User、Moderator、Publisher等。在用户中有:Id(pk),Email,NameFirst,NameLast,Password,Username。

在设计器中,我将"用户"与"角色"连接起来,以便在"角色"->"用户Id"="用户的Id"中。

现在,在创建了一个从RoleProvider继承的类之后,在函数GetRolesForUser(字符串用户名)中,我想获得id为用户名的用户的所有角色的枚举。

因此,例如,如果我得到一个用户Agon,我希望能够获得他所有角色的枚举供以后使用,并在所述方法中以字符串[]的形式返回它们。

因此,经过数小时令人麻木的尝试,我一直在犯错误。不确定从这里去哪里:

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

表列将枚举和返回值作为字符串

我不确定枚举在这方面的真正作用,但以下内容如何:

    using (SMEntities db = new SMEntities())
    {
        User user = db.Users.First(x => x.Username == username);
        return user.Roles.Select(r => r.Type).ToArray();
    }