2

我正在尝试这样做:我首先使用 EF 代码来映射旧的现有数据库。有许多类型错误的字段(例如:char(1) 用作布尔值)所以我为我的数据库上下文创建了一个包装器类,它完美地映射到数据库表。现在,我想在我的存储库上公开我的 Entity 类型的 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 类的方法,这是否可能以及如何?

谢谢。

4

1 回答 1

1

通常您使用项目Queryable.Select来更改查询的类型...

public IQueryable<Entity> GetEntities()
{
  return _context.WrapperEntities.Select(x => new Entity(){...});
} 
于 2012-04-16T19:52:50.203 回答