在这里,我在 asp.net mvc 中创建了一个模型结构:
public class UserModel
{
public int UserId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public List<Permission> Permissions { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Permission
{
public int PermissionID { get; set; }
public bool IsPermit { get; set; }
public string Name { get; set; }
}
并在列表中设置一些默认值,当我在列表中添加用户时,我通过 UI 将页面权限分配给该用户(通过检查权限复选框),以便用户只能访问分配的页面:
public static class Repository
{
public static List<UserModel> GetUsers()
{
List<UserModel> listUsers = new List<UserModel>
{
new UserModel
{
UserId = 1,
UserName = "abc",
Password = "abc",
Permissions = new List<Permission>
{
new Permission
{
PermissionID = 1,
IsPermit = true,
Name = "Page1"
},
new Permission
{
PermissionID = 2,
IsPermit = false,
Name = "Page2"
},
new Permission
{
PermissionID = 3,
IsPermit = false,
Name = "Page3"
},
new Permission
{
PermissionID = 4,
IsPermit = false,
Name = "Page4"
}
},
FirstName = "Rohit",
LastName = "Sharma"
},
new UserModel
{
UserId = 2,
UserName = "xyz",
Password = "xyz",
Permissions = new List<Permission>
{
new Permission
{
PermissionID = 1,
IsPermit = false,
Name = "Page1"
},
new Permission
{
PermissionID = 2,
IsPermit = true,
Name = "Page2"
},
new Permission
{
PermissionID = 3,
IsPermit = true,
Name = "Page3"
},
new Permission
{
PermissionID = 4,
IsPermit = true,
Name = "Page4"
}
},
FirstName = "Rahul",
LastName = "Sharma"
}
};
return listUsers;
}
}
现在我想在 DbContext 类的帮助下使用数据库的代码优先方法来做同样的事情。我在数据库表中有一个静态页面权限列表(Id =1,Name=Page1;Id =2,Name=Page2;Id =3,Name=Page3;Id =4,Name=Page4)。
在为数据库创建模型结构时我很困惑。请指导我如何使用表格创建模型结构和结构映射。
我的数据库中有一个带有默认行的表(权限)。
ID Name
1 Page1
2 Page2
3 Page3
4 Page4
现在,当我添加用户时,我通过静态复选框(Page1、Page2、Page3 和 Page4)为该用户分配权限。这就是我在包含页面列表的数据库中创建静态表的原因。我的用户表最初是空白的。
User
Id int NotNull
UserName nvarchar(100) AllowNull
Password nvarchar(100) AllowNull
FirstName nvarchar(100) AllowNull
LastName nvarchar(100) AllowNull