【问题标题】:ViewModel. Load LINQ query to view [duplicate]视图模型。加载 LINQ 查询以查看 [重复]
【发布时间】:2017-07-28 10:58:15
【问题描述】:

我正在使用 EF 6,我需要一个 LINQ 查询来将所有数据提取到我的 ViewModel。 每个事件都有一个状态(一对一) 表中没有外键

我想显示类似的东西:

EventID   EventStatusID   Name      EventDate   EventDesc    
99        1               Allowed   2000-1-1    Music festival

ViewModel 类:

public class EventVM : Event
{
    public EventStatus EStatus { get; set; }
}

事件类:

[Serializable]
public class Event
{
    public int EventID { get; set; }
    public int EventStatusID { get; set; }
    public string EventNumber { get; set; }
    public DateTime EventDate { get; set; }
    public string EventDesc { get; set; }
}

事件状态类:

[Serializable]
public class EventStatus
{
    public int EventStatusID { get; set; }
    public string Name{ get; set; }
    public string Desc{ get; set; }
}

事件表:

dbo.Event

    Column name     Type       Allow nulls
PK  Eventid         int        no
    Eventstatusid   int        no
    Eventnumber     nvarchar   no
    Eventdate       date       no
    Eventdesc       nvarchar   no

事件状态表:

dbo.EventStatus

    Column name     Type       Allow nulls
PK  Eventstatusid   int        no
    Desc            nvarchar   no
    Name            nvarchar   no

我停留在这一刻:

            var viewModel =
           (from ev in db.Events
            join evs in db.EventStatus on ev.EventStatusID equals evs.EventStatusID
            where ev.EventStatusID == id

            select new EventVM
            {
                EventID = ev.EventID
            }).First();

有错误:

System.NotSupportedException: '无法在 LINQ to Entities 查询中构造实体或复杂类型'ModelEvent.EntityFramework.Concrete.EventVM'。'

我无法更改视图模型,我必须使用这个

【问题讨论】:

  • 只需选择匿名类型,然后创建模型。
  • 或者使视图模型类不继承自Event

标签: c# .net asp.net-mvc entity-framework linq


【解决方案1】:

您需要创建模型或使用匿名类型从数据库中收集数据(不要忘记使用ToList()实际收集数据),然后映射它是EventVMpropertiesproperties。您收到此错误,因为EF 无法正确创建EventVM 的实例。

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多