Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.NET MVC中使用视图模型列出数据有困难_C#_Asp.net Mvc_Asp.net Mvc 5 - Fatal编程技术网

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到实体中,您只能投影到匿名类型或常规类。您不能投影到现有实体类型。啊,我该怎么办?