ฉันเห็นรหัสนี้ทำงานกับ LINQ ถึง SQL แต่เมื่อฉันใช้ Entity Framework มันแสดงข้อผิดพลาดนี้:
LINQ เป็นเอนทิตีไม่รู้จักเมธอด 'System.Linq.IQueryable'1 [MyProject.Models.CommunityFeatures] GetCommunityFeatures ()' เมธอดและเมธอดนี้ไม่สามารถแปลเป็นนิพจน์ร้านค้าได้
รหัสที่เก็บคือ:
public IQueryable<Models.Estate> GetEstates()
{
return from e in entity.Estates
let AllCommFeat = GetCommunityFeatures()
let AllHomeFeat = GetHomeFeatures()
select new Models.Estate
{
EstateId = e.EstateId,
AllHomeFeatures = new LazyList<HomeFeatures>(AllHomeFeat),
AllCommunityFeatures = new LazyList<CommunityFeatures>(AllCommFeat)
};
}
public IQueryable<Models.CommunityFeatures> GetCommunityFeatures()
{
return from f in entity.CommunityFeatures
select new CommunityFeatures
{
Name = f.CommunityFeature1,
CommunityFeatureId = f.CommunityFeatureId
};
}
public IQueryable<Models.HomeFeatures> GetHomeFeatures()
{
return from f in entity.HomeFeatures
select new HomeFeatures()
{
Name = f.HomeFeature1,
HomeFeatureId = f.HomeFeatureId
};
}
LazyList คือรายการที่ขยายพลังของ IQueryable
มีใครสามารถอธิบายได้ว่าเหตุใดจึงเกิดข้อผิดพลาดนี้