Kiedy próbuję wywołać moje repozytorium w Sub Select, mam ten błąd.LINQ to Entities nie rozpoznaje metody "System.Linq.IQueryable
IGrpTextRepository rep = new GrpTextRepository();
var query = new DetailViewModel
{
ViewDet = (from gh in _db.Grp
select new MultiDetailViewModel
{
Header = gh,
Txts = rep.FindAllLangTxtById(gh.GrpID)
}).ToList(),
Lang = _db.Language.ToList(),
};
My Interfejs jest
public interface IGrpTextRepository
{
IQueryable<GrpText> FindAllLangTxtById(int GrpID);
}
public class GrpTextRepository : IGrpTextRepository
{
DBEntities db = new DBEntities();
public IQueryable<GrpText> FindAllLangTxtById(int GrpID)
{
return (from lang in db.Language
join gtxts in db.GrpText on lang.LangID equals gtxts.LangID into jointxt
from fintxt in jointxt.DefaultIfEmpty()
where fintxt.GrpID == GrpID
select fintxt);
}
}
Oto Komunikat o błędzie pełny
System.NotSupportedException: LINQ do podmiotów nie rozpoznaje metoda „System.Linq.IQueryable`1 [aaa.Models .GrpText] FindAllLangTxtById (Int32) 'metoda, a tej metody nie można przetłumaczyć na wyrażenie składowe.
Chciałbym wyjaśnić to zwięźle ... Ile wiesz już o interfejsie IQueryable, odroczonym wykonaniu i drzewach wyrażeń? – jfar