C# &引用;没有支持的到SQL的转换;从linq语句中提取方法后
我有以下linq声明:C# &引用;没有支持的到SQL的转换;从linq语句中提取方法后,c#,linq,C#,Linq,我有以下linq声明: public IEnumerable<EventModel> GetList( EnumEventCategory? category = null, EnumEventType? type = null) { var listDB = from e in this.DataContext.Event join i in this.DataContext.Identifier on e.ID equals
public IEnumerable<EventModel> GetList(
EnumEventCategory? category = null,
EnumEventType? type = null)
{
var listDB = from e in this.DataContext.Event
join i in this.DataContext.Identifier on e.ID equals i.ID
orderby e.Deadline, e.ID descending
select new EventModel
{
ID = i.ID,
IdentifierStatus = i.IdentifierStatus,
IdentifierType = i.IdentifierType,
EventCategory = e.EventCategory,
EventType = e.EventType,
};
if (category != null && category != EnumEventCategory.Unknown)
{
listDB = listDB.Where(x => x.EventCategory == category);
}
if (type != null && type != EnumEventType.Unknown)
{
listDB = listDB.Where(x => x.EventType == type);
}
return listDB;
}
有什么想法吗?(仔细检查后重新编写)没有,那不行,你必须选择新的。将该方法作为一个ctor添加到EventModel类中,它将开始工作。谢谢Alex。我试过了,但没用。
public IEnumerable<EventModel> GetList(
EnumEventCategory? category = null,
EnumEventType? type = null)
{
var listDB = from e in this.DataContext.Event
join i in this.DataContext.Identifier on e.ID equals i.ID
orderby e.Deadline, e.ID descending
select EventModel(i, e);
if (category != null && category != EnumEventCategory.Unknown)
{
listDB = listDB.Where(x => x.EventCategory == category);
}
if (type != null && type != EnumEventType.Unknown)
{
listDB = listDB.Where(x => x.EventType == type);
}
return listDB;
}
private static EventModel EventModel(Identifier i, Event e)
{
return new EventModel
{
ID = i.ID,
IdentifierStatus = i.IdentifierStatus,
IdentifierType = i.IdentifierType,
EventCategory = e.EventCategory,
EventType = e.EventType,
};
}