EF Core Fluent 验证延迟加载

时间:2020-12-30 22:45:34

标签: c# entity-framework-core

我有一个 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();

我认为一个解决方案是为每种类型的操作(例如插入、更新)定义一个验证器。是否有任何解决方法或更好的设计来进行验证并保持延迟加载行为?

0 个答案:

没有答案
相关问题