实体框架,如何与未映射的实体工作

本文关键字:实体 映射 工作 框架 | 更新日期: 2023-09-27 18:07:55

我对使用未映射的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工作?因为我不知道如何用通用存储库将这些数据保存到数据库

实体框架,如何与未映射的实体工作

如果您需要持久化CupomFiscalDetalhes,那么您应该将其添加到上下文中。如果你不需要持久化CupomFiscalDetalhes,那么它就不应该实现IBaseRepository,你应该把它看作一个通过控制器类填充的数据视图。