【发布时间】:2013-02-18 08:44:24
【问题描述】:
我觉得问这个问题真是个菜鸟,但它已经困扰了我一段时间了。
在设计分层应用程序的 BLL 时,您是否会将所有实体类放在一个命名空间中?例如:如果您有一个包含客户及其车辆的数据库,并且这些车辆按月进行维修。我认为可以将客户及其车辆保存在与“服务模块”不同的“模块”中(这样,如果您需要更新服务的完成方式或数据的存储位置,则无需触摸Customer\Vehicle 模块)。
我的这种想法是正确的还是应该改变我的设计思路?
这让我在使用 LINQ to SQL 时遇到了问题。如果表的实体类的一半包含在“模块”A 中,另一个包含在“模块”B 中,那么您将在某个地方使用“模块”A 引用“模块”B,反之亦然,以适应 2 个表之间的关联与“模块”接壤。
或者(现在才想到这一点)您是否会在“模块”中重叠 1 个表的实体类(在两个模块中具有相同的类)?
任何建议将不胜感激。
【问题讨论】:
-
避免修改命名空间的目的是什么?我会理解组装。请注意,您在引号中使用了名称模块,这意味着您也不太确定这些类的边界是什么。
-
真正的设计模式专家也将 BLL 与 DAL 分开。因此,他们不必担心具体的数据访问技术、其局限性和实施细节。
标签: c# .net linq-to-sql architecture bll