我正在学习将ASP.NET MVC与存储库模式一起使用。 我有一个用户列表和一个角色列表。用户包含一个RoleId,角色包含一个RoleName和ID。我想返回一个UsersWithRoles列表,并将其放入具有UserName和RoleName的ViewModel中。什么是正确的进行方式。 我在想: 1)获取名称和角色列表,并从控制器(foreach)填充ViewModel 2)在存储库中加入角色和名称,并将它们作为实体返回给控制器,在控制器中填充ViewModel 3)在存储库中加入角色和名称,然后直接作为ViewModel返回
答案 0 :(得分:0)
在控制器中
查找特定记录并将公用字段(主数据)存储到局部变量
var Users = _Entity.UserInfoTable.Where(p => p.UserCode.Equals(UserID)).FirstOrDefault();
string strUserID = Users.UserID
strUserID保留用户ID
现在使用局部变量获取特定于该用户的角色数据
var UserRole = _Entity.UserRoleTable.Where(p => p.UserCode.Equals(strUserID)).FirstOrDefault()
最后一步:将UserRole数据添加到“自定义/查看模型/仓库”
CustomeModel cm = new CustomeModel();
cm.UserID = UserRole.UserID;
cm.RoleID = UserRole.RoleID;
cm.RoleName = UserRole.RoleName;
答案 1 :(得分:0)
var usersWithRoles = (from u in Users
join r in Roles on r.Id equals u.RoleId
select new UserWithRoles{
UserName = u.UserName,
RoleName = r.RoleName
}).ToList();