2015-01-08 2 views
0

Я в настоящее время беспокоили путем вызова метода внутри LINQ whic это просто так:Метод, который содержит LINQ не работает в другой LINQ

var entity=GetCustomers(false).Where(a => GetListCompcd(userlinkcd, rolecd).Any(b => b == a.comp_cd)); 

метод GetListCompcd:

private List<string> GetListCompcd(string userlinkcd, string rolecd) 
    { 
     List<string> listcompcd = new List<string>(); 
     if (rolecd == GeneralConst.L_ROLE_AGENT_CD) 
     { 
      listcompcd.Union(_unitOfWork.Repository<CONTACT>().Query().Filter(a => a.agent_cd == userlinkcd).Get().Select(a => a.comp_cd).ToList()); 
      listcompcd.Union(_unitOfWork.Repository<AGENT_2D>().Query().Filter(a => a.agent_cd == userlinkcd).Get().Select(a => a.comp_cd).ToList()); 
     } 
     else if (rolecd == GeneralConst.L_ROLE_CGROUP_CD) 
     { listcompcd.AddRange(_unitOfWork.Repository<CONTACT>().Query().Filter(a => a.agent_cd == userlinkcd).Get().Select(a => a.comp_cd).ToList()); } 
     return listcompcd; 
    } 

этот код имеет ошибку говоря

LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[System.String] GetListCompcd(System.String, System.String)' method, and this method cannot be translated into a store expression. 

ответ

-1

Это должно сделать трюк:

var entity=GetCustomers(false).Where(a => GetListCompcd(userlinkcd, rolecd).Contains(a.comp_cd)); 
+1

Это приведет к точно такой же ошибке по той же причине. – Servy

+0

Да, мой предыдущий ответ был неправильным, этот отредактированный ответ должен сделать трюк. –

+0

... Предполагая, что «GetListCompcd (string, string)» работает –

Смежные вопросы