【发布时间】: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