2

私はこれをやろうとしています:私は最初にEFコードを使用して古い既存のデータベースをマップしています。間違った型 (例: char(1) をブール値として使用) のフィールドが多数あるため、データベース テーブルに完全にマップする db コンテキスト用のラッパー クラスを作成しました。ここで、エンティティ タイプの 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
    }
}

私はすでに変換ルーチンを持っています。唯一欠けているのは、WrappedEntity クラスを公開せずにリポジトリを考えて DbContext をクエリする方法です。それは可能ですか?

ありがとう。

4

1 に答える 1

1

通常Queryable.Select、クエリのタイプを変更するには、と投影します...

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