【发布时间】:2011-04-20 06:57:39
【问题描述】:
我看到这段代码与 LINQ to SQL 一起工作,但是当我使用实体框架时,它会抛出这个错误:
LINQ to Entities 无法识别方法 '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 功能的 List。
有人能解释一下为什么会出现这个错误吗?
【问题讨论】:
标签: c# entity-framework linq-to-entities repository-pattern