业务逻辑层设计

时间:2013-03-04 09:45:30

标签: c# .net linq-to-sql architecture bll

我觉得这个问题就像这样一个菜鸟,但现在一直困扰着我。

在设计分层应用程序的BLL时,您是否将所有实体类放在一个名称空间中?例如:如果您有一个包含客户及其车辆的数据库,并且这些车辆可以按月计算。我认为可以将客户和他们的车辆保持在与“服务模块”不同的“模块”中(这样,如果您需要更新服务的方式或存储数据的位置,您就不需要触摸客户\车辆模块)。

我这样思考是否正确,还是应该改变我的设计理念?

这让我遇到了使用LINQ to SQL的问题。如果表的实体类的一半包含在'模块'A中,另一个包含在'模块'B中那么你将在某个地方拥有'模块'参考'模块'B,反之亦然,以适应2个表之间的关联与'模块'接壤。

OR(现在只想到这个)你会在'modules'中有1个表的实体类重叠(在两个模块中都有相同的类)吗?

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您是否还拥有数据访问层并不完全清楚,因为您提到“因此,如果您需要更新服务的方式或存储数据的位置,您无需触及客户\车辆模块“。 DAL将负责处理检索和存储数据,无论在哪里。

但当然可能必须更新车辆,如果需要在一个地方更新这些规则,那将是最方便的。您可以使用这些规则创建Customer和Vehicle BLL。然后,您只需添加一个使用Customer和Vehicle的CustomerVehicleService。没有规则你不能。