我试着这样做:我首先使用EF代码来映射旧的现有数据库。有许多字段的类型错误(例如:char(1)用作布尔值)所以我为我的数据库上下文创建了一个完美映射到数据库表的包装类。现在,我想在我的存储库中公开我的实体类型的IQueryable。看我的例子:
public class MyContext:DbContext
{
public DbSet<WrappedEntity> WrapperEntities;
}
public class Repository
{
private MyContext _context;
//contructors omitted
public IQueryable<Entity> GetEntities()
{
return _context.WrapperEntities; //doesn't compile, I need some convertion here
}
}
我已经拥有了我的转换例程,唯一缺少的是查询我的DbContext认为我的存储库而不暴露WrappedEntity类的方法,是否可能以及如何?
感谢。
答案 0 :(得分:1)
通常您使用Queryable.Select
进行投影以更改查询类型...
public IQueryable<Entity> GetEntities()
{
return _context.WrapperEntities.Select(x => new Entity(){...});
}