Sto provando a selezionare negozi utilizzando una funzione lambda e convertendo il risultato in un oggetto SelectListItem in modo che possa renderlo. Tuttavia si sta gettando un "tipo di espressione in Seleziona la clausola non è corretto" Errore:Come utilizzare Lambda in LINQ select statement
IEnumerable<SelectListItem> stores =
from store in database.Stores
where store.CompanyID == curCompany.ID
select (s => new SelectListItem { Value = s.ID, Text = s.Name});
ViewBag.storeSelector = stores;
Che cosa sto facendo di sbagliato?
EDIT:
Inoltre, come faccio a convertire Int a stringa in questa situazione? La seguente non funziona:
select (s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name});
select (s => new SelectListItem { Value = s.ID + "", Text = s.Name});
EDIT 2:
Figura l'Int String conversione. È così tipico di Microsoft dimenticare di includere una funzione di conversione int2string. Qui è l'attuale soluzione tutti utilizzano, con la sintassi completamente funzionante:
select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };
chiamare questa situazione assurda è un eufemismo.
Potete per favore mi aiuti a convertire int a string? Non sembra esserci alcun modo per LINQ to Entity per convertire int in stringa. – Bill
@YongkeBillYu Intendi come ad esempio '5.ToString()'? –
Sì, a quanto pare non funziona. – Bill