我没有特别的问题,但问题是我不知道是否可以创建这样的服务:
我有一个仅包含ID的抽象基类,并且所有类(数据库中的模型)都从该类继承并具有其属性。
我的问题是,我只能使用一种服务,一种可以通过CRUD操作管理所有表/模型的方法吗?
这是我的存储库:
public class Repository : IRepository<db_context>
{
private readonly db_context _dbContext;
public Repository(db_context dbContext)
{
_dbContext = dbContext;
}
public T GetById<T>(int? id) where T : BaseEntity
{
return _dbContext.Set<T>().SingleOrDefault(e => e.Id == id);
}
public List<T> List<T>() where T : BaseEntity
{
return _dbContext.Set<T>().ToList();
}
public T Add<T>(T entity) where T : BaseEntity
{
_dbContext.Set<T>().Add(entity);
_dbContext.SaveChanges();
return entity;
}
....
}
任何想法..?
答案 0 :(得分:0)
很有可能,我不明白为什么不这样做。这主要是因为您几乎只是在重做DbContext已经完成的工作。正如 pinkfloydx33 所提到的,出于相同的原因,我也建议不要使用它。此外,从长远来看,这种抽象是行不通的。因此,您可能需要一些特定的功能,这些功能将使您的代码非常难看且难以维护。如果您试图创建某种形式的简化,则还可以考虑扩展功能。
话虽如此,如果您仍然有理由的话,再次很有可能。您也可以使用_dbContext.Add(entity)
代替_dbContext.Set<T>().Add(entity)
,因为在该实例中.Set<T>()
似乎毫无意义(与更新相同)。