我有一个从默认继承的类Authorization
调用的项目CodeFirstRoleProvider
RoleProvider
public class CodeFirstRoleProvider : RoleProvider
{
public override void CreateRole(string roleName)
{
if(string.IsNullOrEmpty(roleName)) return;
using(var context = new SISContext())
{
var role = context.Roles.SingleOrDefault(rl => rl.RoleName == roleName);//Roles table exists in database
if(role == null)
{
var newRole = new Role
{
RoleId = Guid.NewGuid(),
RoleName = roleName
};
context.Roles.Add(newRole);
context.SaveChanges();
}
}
}
}
在我的另一个项目WebPortal
中,我想以下面的方式使用上述方法
var _role = new CodeFirstRoleProvider();
_role.CreateRole("Admin");
_role.CreateRole("NonAdmin");
现在我需要将此代码放在哪里webportal
?这样这些角色就会在应用程序运行时首次添加到数据库中。
假设这个程序第一次运行并且有人点击了注册按钮,我想要一个包含上述角色的下拉列表。因此,在单击注册之前,这些角色需要在数据库中。
一旦角色在数据库中,我就不必担心将来访问这些值。一种方法是在数据库中手动写入值,但我不想这样做,因为我有这个可以使用的功能。