C# 在ASP.NET MVC中使用视图模型列出数据有困难
我试图从一个视图模型传递数据,该视图模型派生自两个模型。控制器看起来像这样C# 在ASP.NET MVC中使用视图模型列出数据有困难,c#,asp.net-mvc,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Mvc 5,我试图从一个视图模型传递数据,该视图模型派生自两个模型。控制器看起来像这样 public ActionResult SessionDetails() { var Sessions = (from a in db.Appointments join c in db.Clients on a.clientid equals c.id into SessionList fro
public ActionResult SessionDetails()
{
var Sessions = (from a in db.Appointments
join c in db.Clients
on a.clientid equals c.id into SessionList
from c in SessionList.DefaultIfEmpty()
select new SessionViewModel()
{
id = a.id,
sessionnotes = a.sessionnotes,
firstname = c.firstname,
date = a.date,
}).ToList()
.Select(x => new SessionViewModel()
{
id = a.id,
sessionnotes = a.sessionnotes,
firstname = c.firstname,
date = a.date,
});
return View(Sessions);
}
它会出现错误,说名称“a”在当前上下文中不存在?你知道发生了什么事吗
我真的是一个新手,我使用网站按照这些说明做了我想做的事情SessionDetails
我已经对此有了看法
更新
我已作出以下更改:
public ActionResult SessionDetails()
{
var Sessions = (from a in db.Appointments
join c in db.Clients
on a.clientid equals c.id into SessionList
from c in SessionList.DefaultIfEmpty()
select new SessionViewModel()
{
id = a.id,
sessionnotes = a.sessionnotes,
firstname = c.firstname,
date = a.date,
}).ToList();
return View(Sessions);
}
但是当我运行它时,我得到了这样一个结果:EntityFramework.SqlServer.dll中发生了类型为System.NotSupportedException
的异常,但没有在用户代码中处理
附加信息:实体或复杂类型
fypag.Models.SessionViewModel
不能在LINQ to Entities查询中构造。我认为您的模型应该是这样的
var Sessions = (from a in db.Appointments
join c in db.Clients
on a.clientid equals c.id into SessionList
from c in SessionList.DefaultIfEmpty()
select new SessionViewModel()
{
id = a.id,
sessionnotes = a.sessionnotes,
firstname = c.firstname,
date = a.date,
}).ToList()
.Select(x => new SessionViewModel()
{
id = x.id,
sessionnotes = x.sessionnotes,
firstname = x.firstname,
date = x.date,
});
更新:
var Sessions = (from a in db.Appointments
join c in db.Clients
on a.clientid equals c.id into SessionList
from c in SessionList.DefaultIfEmpty()
.Select(y => new SessionViewModel()
{
id = y.id,
sessionnotes = y.sessionnotes,
firstname = y.firstname,
date = y.date,
}).ToList();
您不需要第二个
.Select()
-您已经创建了一个列表
(如果需要,那么在第二个列表中,它的id=x.id
(不是a.id
),因为您正在使用。选择(x=>
愚蠢的我!显然不太擅长以下说明:'但现在我有错误:实体或复杂类型'fypag.Models.SessionViewModel'无法在LINQ to Entities查询中构造。您尝试过的新代码是什么(将新代码附加到带有新错误的问题中)我编辑了问题。是的,我知道了,但现在我有一个错误:实体或复杂类型“fypag.Models.SessionViewModel”无法在LINQ到实体查询中构造。在LINQ到实体中,您只能投影到匿名类型或常规类。您不能投影到现有实体类型。啊,我该怎么办?