在我的datacontext中给出了这个:
public class EventsForUserID
{
public string eventName { get; set; }
public int eventID { get; set; }
public string eventIdentifier { get; set; }
public DateTime eventOpenDate { get; set; }
public DateTime eventCloseDate { get; set; }
public bool eventDisabled { get; set; }
public EventsForUserID() {}
public EventsForUserID(string pEventName, int pEventID, string pEventIdentifier, DateTime pEventOpenDate, DateTime pEventCloseDate, bool pEventDisabled)
{
this.eventName = pEventName;
this.eventID = pEventID;
this.eventIdentifier = pEventIdentifier;
this.eventOpenDate = pEventOpenDate;
this.eventCloseDate = pEventCloseDate;
this.eventDisabled = pEventDisabled;
}
}
public List<EventsForUserID> GetEventsForUserID(string userID, bool excludeDisabled)
{
var e =
from ex in this.Exhibitors
join ev in this.Events on ex.EventID equals ev.EventID
where ex.UserID.ToString() == userID
select new EventsForUserID (
ev.EventName,
ev.EventID,
ev.EventID + "[::]" + ex.ExhibitorID + "[::]" + ex.AccountDisabled + "[::]" + ev.EventDisabled,
ev.OpenDate.Value,
ev.CloseDate.Value,
ev.EventDisabled
);
if (excludeDisabled) {
e = from ev in e
where ev.eventDisabled != true
select ev;
}
return e.ToList();
}
我收到错误: 成员'LeadsDataContext + EventsForUserID.eventDisabled'没有支持的SQL转换。
在return.ToList()行上。
我尝试了各种各样的...... AsQueryable()等
我认为它是因为EventsForUserID不是真正的sql表,但后来我认为LINQ用于对多种类型的对象执行查询。
我错过了某种演员。
非常感谢,N
答案 0 :(得分:3)
不幸的是,你不能在同一个查询中自由地混合使用linq-to-objects和linq-to-sql。如果您将查询作为linq-to-sql查询运行,则所有内容都必须转换为sql。
尝试将代码拆分为两个查询。第一个应该使用linq-to-sql从数据库中检索相关数据。第二个使用linq-to-objects来进行数据的最终过滤/操作。