1 回答
TA贡献1802条经验 获得超5个赞
执行此操作的常用方法是使用存储库模式。在 ViewModel 层定义一个 Interface 并在 DataLayer 中实现。那么 ViewModel 对 DataLayer 一无所知。然后通过依赖注入在主类中使用 ConnectionProvider 实例化存储库。此外,dbContext 必须移动到 DataLayer,您应该在 Repository 中使用它。我建议将连接字符串放在配置文件中并在 DL 中使用它。这些类应该看起来像这样
namespace ViewModel;
interface IDatabaseRepository {
DataObject LoadData()
}
namespace DataLayer;
class DataRepository {
public DataRepository(DbContext context) {
this.context = context;
}
public DataObject LoadData() {
//load data from DB using dbContext
}
}
namespace ViewModel;
class ViewModel {
public ViewModel(IDataRepository repository) {
this.repository = repository;
}
// use the repository inside this class to acces data
}
还可以查看依赖倒置原则,因为这有助于解耦这样的事情。
- 1 回答
- 0 关注
- 206 浏览
添加回答
举报