2016-09-19 135 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没有要映射的表,我是否需要将所有POCO类映射到EntityFramework中才能使用ht? 询问是因为我不知道如何将这些数据保存到具有通用存储库的数据库中。

回答

1

如果您需要坚持CupomFiscalDetalhes,那么您应该将其添加到上下文中。 如果您不需要坚持CupomFiscalDetalhes,那么它不应该实现IBaseRepository,并且您应该将其视为通过控制器类填充的数据视图。

+0

感谢@robaudas的帮助,即使那个CupomFiscalDetalhes有一些属性(其他类有一个相关的表),只有那些类将实现IBaseRepository来持久化,并且CupomFiscalDetalhes将会是一个“连接”一堆信息,对吧? – Maturano

+0

这听起来像你想要做的。某些控制器类将搜索3个相关实体的存储库,然后将它们分配给类属性。 – robaudas