如何解决不支持翻译成SQL
| 在我的数据上下文中鉴于此: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
解决方法
不幸的是,您不能在同一查询中自由混合linq-to-objects和linq-to-sql。如果您将查询作为linq-to-sql查询运行,则所有内容都必须转换为sql。
尝试将您的代码分为两个查询。第一个应该使用linq-to-sql从数据库中检索相关数据。第二种使用linq-to-objects进行数据的最终过滤/处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。