WPF MVVM存储库模式实现
我正在使用EF Core在WPF MVVM中开发一个应用程序,作为POC,目前只关注2个表。有两个独立的视图(针对2个表)-使用DataGrid和导航视图时,DataGrid将加载来自该特定表的数据。到目前为止还不错 现在,我正在实现一个存储库模式,这样基本的CRUD操作就可以在这两个表中通用。目前,我在存储库中只有全选功能。以下是我为存储库模式遵循的工作流程 (1) 我使用数据库优先的方法,从数据库中构建这两个表。它给了我3个类(2个用于表,1个用于数据库上下文) (2) 然后在网上阅读了几本书之后,我创建了两个界面(IEntity和IRepository)WPF MVVM存储库模式实现,wpf,mvvm,entity-framework-core,repository-pattern,Wpf,Mvvm,Entity Framework Core,Repository Pattern,我正在使用EF Core在WPF MVVM中开发一个应用程序,作为POC,目前只关注2个表。有两个独立的视图(针对2个表)-使用DataGrid和导航视图时,DataGrid将加载来自该特定表的数据。到目前为止还不错 现在,我正在实现一个存储库模式,这样基本的CRUD操作就可以在这两个表中通用。目前,我在存储库中只有全选功能。以下是我为存储库模式遵循的工作流程 (1) 我使用数据库优先的方法,从数据库中构建这两个表。它给了我3个类(2个用于表,1个用于数据库上下文) (2) 然后在网上阅读了几本
公共接口的可扩展性
{
int Id{get;}
}
公共接口i假设,其中tenty:ienty
{
IEnumerable List();
}
这是Repository类
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class, IEntity
{
private readonly DbContext _context;
private readonly DbSet<TEntity> _dbSet;
public Repository()
{
}
public Repository(DbContext context)
{
this._context = context;
this._dbSet = context.Set<TEntity>();
}
public IEnumerable<TEntity> List()
{
return _dbSet.ToList();
}
}
公共类存储库:i存储库,其中tenty:class,ienty
{
私有只读DbContext\u context;
私有只读数据库集_DbSet;
公共存储库()
{
}
公共存储库(DbContext上下文)
{
这._context=context;
这个._dbSet=context.Set();
}
公共IEnumerable列表()
{
return_dbSet.ToList();
}
}
TEntity到底是什么?我应该如何在ViewModel中使用这个存储库类?我对此进行了大量搜索,据我所知,仅仅构建数据库是行不通的——必须在dbContext和dbSet的某个地方进行映射。如果我在整个工作流程中遗漏了一些关键的东西,有人能告诉我吗?提前感谢。删除此附加抽象
DbSet
已经是存储库,DbContext
已经是UoW。还请阅读其他文章:
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class, IEntity
{
private readonly DbContext _context;
private readonly DbSet<TEntity> _dbSet;
public Repository()
{
}
public Repository(DbContext context)
{
this._context = context;
this._dbSet = context.Set<TEntity>();
}
public IEnumerable<TEntity> List()
{
return _dbSet.ToList();
}
}