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

时间:2013-02-11 21:59:32

标签: c# asp.net ado.net-entity-data-model

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

基本上我关注的两个表是用户和角色。 在角色中有:Id(pk),UserId(fk),类型:字符串 - 包含管理员,用户,主持人,发布者等。 在用户中有:Id(pk),电子邮件,NameFirst,NameLast,密码,用户名。

在设计师中,我将用户与角色连接起来,以便在角色中 - > UserId ==用户ID。

现在,在创建一个继承自RoleProvider的类之后,在函数GetRolesForUser(string username)中,我希望得到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();
    }

1 个答案:

答案 0 :(得分:1)

我不确定枚举在哪一个真正发挥作用,但以下情况如何:

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