我有这门课(你可以在这里看到它的全部内容)......
internal class BaseRepository<I, C> : IRepository<I>
where I : class, IBaseObject
where C : BaseObject
{
private Context _context;
public IEnumerable<I> FindBy(Expression<Func<I, bool>> predicate)
{
return _context.Set<C>().ToList().Cast<I>().AsQueryable().Where(predicate);
}
// other methods.
}
我该如何工作,这样我就不必调用.ToList()
我认为会导致 EF 返回所有内容的调用.Set<C>()
不使用它.ToList()
会.AsQueryable()
导致错误:
System.NotSupportedException:无法将类型“Sln.DAL.Sql.Entities.Project”转换为类型“Sln.DAL.Entities.IProject”。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。