2016-09-19 4 views
1

マップされたPOCOエンティティで作業することに疑問があります。 プロパティを含むエンティティがあります(このプロパティは、データベースにマップされる他のPOCOクラスです)。エンティティフレームワーク、マッピングされていないエンティティでの作業方法

public class BaseRepository<TEntity> : IBaseRepository<TEntity> where TEntity : class 
{ 
    internal readonly DbContext recuperadorContext; 
    internal readonly IDbSet<TEntity> dbSet; 

    public BaseRepository(DbContext context) 
    { 
     recuperadorContext = context; 
     dbSet = recuperadorContext.Set<TEntity>(); 
    } 

    public TEntity Adicionar(TEntity obj) 
    { 
     var objReturn = dbSet.Add(obj); 
     return objReturn; 
    } 

}

実装は次のとおりです:

私はこのリポジトリがで動作するように、一般的なエンティティを受け、一般的なリポジトリを持って

public class CupomFiscalRepository : BaseRepository<CupomFiscalDetalhes> 
{ 
} 

マッピングされていないエンティティとそのプロパティは以下の通りです:

public class CupomFiscalDetalhes 
{ 
    public Movimento Movimento { get; set; } //POCO class mapped 
    public Cliente ClienteCRM { get; set; } //POCO class mapped 
    public Vendedor Vendedor { get; set; } //POCO class mapped 
} 

CupomFiscalDetalhesにはマッピングされるテーブルがないので、EntityFrameworkにマップされているすべてのPOCOクラスをhtで動作させる必要がありますか? ジェネリックリポジトリを使用してこれらのデータをデータベースに保存する方法がわかりません。

答えて

1

CupomFiscalDetalhesを維持する必要がある場合は、それをコンテキストに追加する必要があります。 CupomFiscalDetalhesを保持する必要がない場合は、IBaseRepositoryを実装しないでください。コントローラークラスを介してデータが格納されているビューと見なす必要があります。

+0

CupomFiscalDetalhesにはいくつかのプロパティ(関連するテーブルを持つ他のクラス)がありますが、IBaseRepositoryを永続化するように実装するクラスのみがあり、CupomFiscalDetalhesは「結合」するクラスになります。情報の束、そう? – Maturano

+0

あなたがしようとしているように聞こえます。コントローラクラスによっては、3つの関連エンティティのリポジトリを検索し、それらをクラスプロパティに割り当てます。 – robaudas

関連する問題