Ho il seguenteEntity Framework: impossibile creare un valore costante di tipo x. Solo i tipi primitivi sono supportati in questo contesto.
A Modello Ingegnere:
public class engineers
{
public Guid? Guid { get; set; }
public string Name { get; set; }
}
riempio il un elenco di ingegneri con i dati corretti:
List<engineers> listeng = new List<engineers>();
listeng.Add(new engineers { Name = profile.FirstName + " " + profile.LastName, Guid = GuidEngineer });
Fin qui tutto bene.
La mia domanda come posso tirare il nome ingegneri alla voce ita di seguito:
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
};
Ho anche provato
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()
};
l'errore che sto ottenendo è:
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."}
Quale genere di capire ma non riesco a capire solo per selezionare il nome dell'ingegnere.
Grazie in anticipo
Non è possibile utilizzare il proprio 'elenco' nella query Linq-to-entities. Possono essere utilizzati solo i dati esistenti nel database. Non è possibile combinare arbitrariamente linq-to-objects e linq-to-entities perché EF non sa come tradurlo in SQL. Usa la soluzione alternativa di @ harriyott e compila 'Nome' dopo aver caricato i biglietti dal database. –