大家好! 我是MVC和Linq的新手,我对这些代码有些问题。 我想根据UserId对organizationId进行分组,但它只在我的View中显示了每个UserId的organizationId。 实际上,我希望所有的organizationId都具有相同的UserId。 我怎么能得到它?
public ActionResult Index()
{
var datas = _userInOrganizationService.UserInOrganizations.GetByAll().ToList();
var userdata = ApplicationUserManager.Users.Where(x => x.Active == true).ToList();
var orgdata = _userInOrganizationService.Organizations
.GetByAll().ToList();
List<UserInOrganizationViewModel> data = (
from z in datas
join user in userdata on z.UserID equals user.Id
join org in orgdata on z.OrganizationID equals org.OrganizationID
select new UserInOrganizationViewModel
{
UserID = user.Id,
UserName = user.UserName,
FullName = user.FullName,
Email = user.Email,
NRCNo = user.NRCNo,
Organizations = ShowOrganizaton(org.OrganizationID),
PasswordQuestion = user.PasswordQuestion,
PasswordAnswer = user.PasswordAnswer,
CreatedDate = user.CreatedDate,
UpdatedDate = user.UpdatedDate
}).Distinct().ToList();
return View(data);
}
public List<Organization> ShowOrganizaton(string orgid)
{
var data = _userInOrganizationService.Organizations.GetByAll().Where(x => x.Active == true && x.OrganizationID == orgid).AsEnumerable().ToList();
return data;
}
答案 0 :(得分:0)
只需将.GroupBy(u => u.UserID)
添加到LINQ语句中即可。
这将按UserID订购所有记录