如何结合 LINQ 和 Lambda?



如何将这两者结合起来?

var viewModel2 = tu.SingleOrDefault(su => su.email == logindetails.Email);


//Get jobs and personal details
var viewModel = from u in db.badusers
join r in db.Users on u.email equals r.Email
join j in db.roles on u.id equals j.roleid
where r.UserName.Equals(usernameCookie)
select new JoinedModel { roles = u, jobs = j, users = r};

我的选择应该在之后吗?

笔记: JoinedModel 包含多个模型。如果我尝试返回 viewModel2,数据是正确的,但它是一个具有多个模型的视图,因此为什么我必须使用 ViewModel(加入模型(,因此抛出的错误是标准的"我期望加入模型(视图模型(但你递给我 viewModel2。

您可以创建一个匿名对象,尽管我强烈建议选择更具描述性的项名称:

var combinedModel = new {
viewModel2 = tu.SingleOrDefault(su => su.email == logindetails.Email),
viewModel = from u in db.badusers
join r in db.Users on u.email equals r.Email
join j in db.roles on u.id equals j.roleid
where r.UserName.Equals(usernameCookie)
select new JoinedModel { roles = u, jobs = j, users = r}
};

这将创建一个对象combinedModel,具有两个属性:combinedModel.viewModel2combinedModel.viewModel

最新更新