2013-02-11 125 views
0

我有一个ASP.NET WebForms应用程序与(EF)数据库。表列使枚举和返回值作为字符串

基本上我关心的两个表是Users和Roles。 在角色有:ID(PK),用户ID(FK),类型:String - 包含要么管理员,用户,版主,出版商等 的用户有:ID(PK),电子邮件,NameFirst,NameLast,密码,用户名。

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

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

因此,举例来说,如果我得到一个用户阿贡,我希望能够得到他的供以后使用的所有角色的枚举,也回报他们以字符串[]中所述方法。

因此对于经过数小时的头部麻木尝试,我一直得到一致的错误。不知道在哪里何去何从:

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

     //throw new NotImplementedException(); 
    } 
+0

不同于论坛的网站,我们不使用“谢谢”或“任何帮助表示赞赏”,或在[so]上签名。请参阅“[应该'嗨','谢谢',标语和致敬从帖子中删除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be 。-removed - 从 - 个) – 2013-02-11 22:19:34

+0

我道歉,我已经缺席了很长一段时间没有 – 2013-02-11 22:31:59

+1

必要道歉 - !现在你知道 – 2013-02-11 22:33:31

回答

1

我不知道在哪里枚举开始发挥作用,真的就这一个,但如何执行以下操作:

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

首先,感谢您输入的I试过各种在哪里,以和选择但没有结束不会产生错误,这是! 至于枚举,我想稍后用它来实际决定每个角色的权限和用途以及whatnot。 这使我想到了点我想避免装箱和取消装箱,只是坚持一个可以由Roles类使用的枚举。 – 2013-02-11 22:10:53

+0

那么这给你什么错误? – IronMan84 2013-02-11 22:14:21

+0

它不是。为我推出了作品。可能有错误的措辞。我的错。 – 2013-02-11 22:20:09