问这个问题我觉得自己是个新手,但这个问题已经困扰了我一段时间了。
在设计分层应用程序的BLL时,您会将所有实体类放在一个命名空间中吗?例如:如果你有一个客户和他们车辆的数据库,这些车辆按月进行服务。我认为应该将客户和他们的车辆与"服务模块"分开放在一个单独的"模块"中(因此,如果您需要更新服务完成的方式或数据存储的位置,则不需要触摸CustomerVehicle模块)。
我这样想对吗?还是我应该改变我的设计思路?
这给了我一个使用LINQ to SQL的问题。如果一半的表实体类包含在'模块' A中,另一个包含在'模块' B中,那么在某个地方,你将有'模块' A引用'模块' B,反之亦然,以适应与'模块'接壤的2个表之间的关联。
或(只是想到这个现在)你会有1表的实体类重叠在"模块"(在两个模块具有相同的类)?
如果你也有一个数据访问层,因为你提到"所以如果你需要更新服务完成的方式或数据存储的位置,你不需要触摸客户车辆模块",这是不完全清楚的。DAL将负责处理数据的检索和存储,无论这些数据可能在哪里。
但是当然,Vehicle可能必须更新,如果更新这些规则需要在一个地方完成,那将是最方便的。您可以简单地用这些规则创建一个Customer和Vehicle BLL。然后,您只需添加一个使用Customer和Vehicle的CustomerVehicleService。没有什么规则是你不能的。