Mam następującyEntity Framework - Nie można utworzyć stałej wartości typu x. W tym kontekście obsługiwane są tylko typy pierwotne.
inżynier Model:
public class engineers
{
public Guid? Guid { get; set; }
public string Name { get; set; }
}
ja wypełnić listę inżynierów z poprawnymi szczegóły:
List<engineers> listeng = new List<engineers>();
listeng.Add(new engineers { Name = profile.FirstName + " " + profile.LastName, Guid = GuidEngineer });
tej pory tak dobrze.
Moje pytanie jak mogę pociągnąć nazwę inżynierów wejściem pol poniżej:
var tickets = from o in new HelpdeskEntities().Tickets.Where(t => t.TicketState.State == "Open")
select new AjaxTickets
{
TicketID = o.TicketID,
TicketSubject = o.TicketSubject,
ClientCompanyName = o.ClientCompany.ClientCompanyName,
DateOpened = o.DateOpened,
**eng** = list.Where(x => x.Guid == o.EngineerID).Select(x => new engineers {Guid = x.Guid, Name=x.Name }).FirstOrDefault().Name
};
Ja również próbował
var tickets = from o in new HelpdeskEntities().Tickets.Where(t => t.TicketState.State == "Open")
select new AjaxTickets
{
TicketID = o.TicketID,
TicketSubject = o.TicketSubject,
ClientCompanyName = o.ClientCompany.ClientCompanyName,
DateOpened = o.DateOpened,
**eng** = list.Where(x => x.Guid == o.EngineerID).Select(x => x.Name }).FirstOrDefault()
};
Błąd Dostaję jest:
Unable to create a constant value of type 'Helpdesk2.ViewModel.engineers'. Only primitive types ('such as Int32, String, and Guid') are supported in this context."}
Co trochę rozumiem, ale nie mogę wymyślić, po prostu wybrać nazwę inżyniera.
góry dzięki
Nie możesz użyć swojej 'listy' w zapytaniu Linq do encji. Można wykorzystywać tylko dane istniejące w bazie danych. Nie możesz dowolnie łączyć linq-to-objects i linq-to-entity, ponieważ EF nie wie, jak przetłumaczyć go na SQL. Użyj obejścia @ harriyott i zapełnij 'Name' po załadowaniu biletów z bazy danych. –