我有一个 Entity Framework Core 项目,我想在执行数据库操作之前验证模型状态(在服务层中)。 这里的问题是模型的属性是延迟加载的,对于这样的场景:获取模型表单数据库,修改随机字段但 Products 字段保持不变(空,未加载),然后尝试在执行更新之前验证模型状态。在这种情况下,验证将失败(产品将为空,因为未加载)。我认为每次(对于每个操作)都加载每个关系将是一个坏主意。
型号:
public class Order
{
public int Id { get; private set; }
...
public virtual ICollection<Product> Products { get; set; }
}
验证规则:
RuleFor(order => order.Products).NotEmpty();
我认为一个解决方案是为每种类型的操作(例如插入、更新)定义一个验证器。是否有任何解决方法或更好的设计来进行验证并保持延迟加载行为?