【发布时间】:2022-02-07 23:32:10
【问题描述】:
对于需要 DB 调用的域实体,我几乎没有要做验证。所以我想在我的域模型中使用我的存储库对象。我尝试使用依赖注入,但它不起作用,并且给了我 null
public class ObjectX : Base
{
public IObjectRepository _ObjectRepository;
public Location(IObjectRepository objRepo)
{
this._ObjectRepository= objRepo;
}
int someProperty{get; set;}
bool validateProperty()
{
bool isValid =_ObjectRepository.ValidateProperty(someProperty);
return isValid;
}
所以这里 objRepo 为 null,因此构造函数也将 null 分配给 _ObjectRepository。我已将
是否可以在域模型中访问存储库对象?
【问题讨论】:
-
我的问题是你为什么要这样做。为什么不在服务层这样做呢?
-
我认为您的域不应该依赖于您的存储库,但您的问题在于您如何在 IoC 容器中注册存储库,因为您正在获取一个实例,但它是空的。
-
@MasoudSharfi 我有一个类似“controller->servicelayer->dataAccessLayer(repositories here)”的设计。如果我在服务层进行,每个对象都会添加很多验证。我是否应该仅出于验证目的创建特定的服务层。我只需要针对数据库验证我的属性。仅此而已。
标签: c# asp.net asp.net-core asp.net-web-api dependency-injection