实现业务逻辑验证的最佳实践 - 实体框架

Mar*_*ark 8 c# entity entity-framework

我使用的实体框架是第一次,我需要插入新对象到数据库之前添加业务逻辑,这里是我想过的选项:

  1. 通过重写SaveChanges方法在DataContext级别实现业务逻辑
  2. 使用OnPropertyChanging部分方法为每个实体实现业务逻辑
  3. 将生成的代码包装在实现验证层的自定义类中.

在Entity Framework上管理业务逻辑时,哪种方法是最佳实践

Joe*_*zer 7

看看EF验证 - 验证是在实体本身内部.

这是组织项目的一种非常干净的方式.

当你有POCO时,实体验证的明显位置在POCO本身.

有意义的是,Customer对象的任何验证实际上都在Customer类中.


Lad*_*nka 5

我的经验:

  1. 这是有效的,但它是相当多的工作,并且在许多实体必须经过验证的情况下,这可能会更慢.实际上EFv4.1会自动执行此操作.
  2. 我不喜欢这种方式 - 它仅用单一性质的变化和复杂的验证,你需要你得到一个有效的状态之前修改几个属性不起作用.
  3. 也许 - 我喜欢验证要求.每个实体都可以公开Validate检查整个权利状态是否正确的方法.

但只有当你总是使用整个实体时,这一切才有效.一旦开始使用部分更新和其他功能,您仍然需要在其他地方处理验证.这是另一个+1按需验证.