使用分部类的实体框架POCO中的业务逻辑?

Mar*_*low 4 frameworks entity partial-classes poco entity-framework-4

我有业务逻辑,可以位于业务逻辑/服务层,也可以添加到利用分部类功能的扩展域类(EF T4生成的POCO)的新成员中.

所以我可以:

a)bool OrderBusiness.OrderCanBeCancelledOnline(Order order).. 或(IOrder订单)

要么

b)bool order.CanBeCancelledOnline().. 即订单本身知道它是否可以取消.

对我来说,选项b)更多是OO.但是,选项a)允许应用更复杂的逻辑,例如使用其他域对象或服务.

目前我有两者兼而有之,这似乎并不优雅.

任何有关这方面的指导将非常感谢!

Bri*_*new 6

对我而言OO的关键在于你告诉对象为你做事.您不会将属性拉出来并自己做出决策(在辅助类或其他类中).

所以我同意你对选项b)的断言.由于您需要额外的逻辑,因此在对对象执行操作同时传递对其他辅助对象的引用以使它们协作时没有任何害处.无论您是在操作本身时执行此操作,还是使用这些协作实体预先填充订单对象,都非常依赖于您当前的情况.