Cette requête est compilée sans erreur:Impossible de convertir implicitement le type 'System.Collections.Generic.List <AnonymousType # 1>' à 'System.Linq.IQueryable <AnonymousType # 2>'
var _entityList = context.customer
.Join(context.applications,
cust => cust.cust_id,
app => app.cust_id,
(cust, app) => new { customer = cust, application = app })
.Join(context.advices,
cust => cust.application.app_id,
sa => sa.app_id,
(cust, sa) => new { customer = cust, advice = sa })
.GroupBy(g => new { g.customer.customer.cust_id, g.customer.customer.cust_code, g.customer.customer.cust_name })
.Select(g => new { cust_id = g.Key.cust_id, cust_code = g.Key.cust_code, cust_name = g.Key.cust_name })
.ToList();
Bien que l'ajout d'une condition où la clause aux déclarations de requête ci-dessus le temps de compilation erreur de conversion de type:
var _entityList = context.customer
.Join(context.applications,
cust => cust.cust_id,
app => app.cust_id,
(cust, app) => new { customer = cust, application = app })
.Join(context.advices,
cust => cust.application.app_id,
sa => sa.app_id,
(cust, sa) => new { customer = cust, advice = sa });
if (custcode != null && custcode != "")
_entityList = _entityList.Where(e => e.customer.customer.cust_code == custcode);
_entityList = _entityList
.GroupBy(g => new { g.customer.customer.cust_id, g.customer.customer.cust_code, g.customer.customer.cust_name })
.Select(g => new { cust_id = g.Key.cust_id, cust_code = g.Key.cust_code, cust_name = g.Key.cust_name })
.ToList(); // error on this line
Impossible de convertir implicitement le type System.Collections.Generic.List<AnonymousType#1>
à System.Linq.IQueryable<AnonymousType#2>
Qu'est-ce qui me manque?
Êtes-vous sûr que e.customer.customer.cust_code et custcode sont des chaînes normales? – Marcus
_entityListis de type IQueryable et que vous essayez d'affecter dans la liste? – Ehsan
Je vous suggère de créer une classe de type et l'utilise dans vos sélections –