Given this in my 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();
}
I get the error:
The member ‘LeadsDataContext+EventsForUserID.eventDisabled’ has no supported translation to SQL.
on the return.ToList() line.
I’ve tried all sorts….AsQueryable() etc
I figure it because EventsForUserID is not a true sql table, but then I thought LINQ was for performing queries over many type of object.
Am I missing a cast of some sort.
Many thanks, N
Unfortunately you cannot mix linq-to-objects and linq-to-sql freely in the same query. If you are running the query as a linq-to-sql query, everything must be translated to sql.
Try to split your code into two queries. The first one should retrieve the relevant data from the database using linq-to-sql. The second uses linq-to-objects to do the final filtering/manipulation of data.