这与以下问题有关:什么是业务逻辑层中需要放置的内容?通过这个问题的答案(我还没有选择答案,因为可能还有其他人评论可以使它更清晰),我得出结论BLL将包括CRUD并根据需要访问DAL。
现在我的主要问题是BLL看起来像什么?例如,一个订单对象。对于CRUD,我看到一些实现具有像这样的OrderService,它是BLL的一部分:
但是将CRUD操作和属性结合在一起似乎有些不妥。
BLL(CRUD和业务对象)通常如何构建?
另外,由于数据通常来自UI输入,然后填充到业务对象中,那么我该如何验证数据?例如,对于订单和列表,我有Total属性,Total应等于OrderItem的总金额。在进行CreateOrder时,我该如何调用验证?我一直认为验证应该在实际属性设置器内完成。在进行CRUD操作期间,我该如何调用此操作?我是否应该在业务对象中实现一个Validate方法?
对此的任何意见都非常欢迎。
现在我的主要问题是BLL看起来像什么?例如,一个订单对象。对于CRUD,我看到一些实现具有像这样的OrderService,它是BLL的一部分:
public class OrderService
{
public int CreateOrder(Order order)
{
...
}
public int UpdateOrder(Order order)
{
...
}
//... other code for CRUD
}
除了业务对象之外,这个问题还涉及到BLL中与业务对象相关的服务?
而在其他一些情况下,他们会这样做:
public class Order
{
public int ID { get; set; }
public decimal Amount { get; set; }
//... etc.
public int Create()
{
...
}
public int Update()
{
...
}
}
但是将CRUD操作和属性结合在一起似乎有些不妥。
BLL(CRUD和业务对象)通常如何构建?
另外,由于数据通常来自UI输入,然后填充到业务对象中,那么我该如何验证数据?例如,对于订单和列表,我有Total属性,Total应等于OrderItem的总金额。在进行CreateOrder时,我该如何调用验证?我一直认为验证应该在实际属性设置器内完成。在进行CRUD操作期间,我该如何调用此操作?我是否应该在业务对象中实现一个Validate方法?
对此的任何意见都非常欢迎。