我正在使用ASP.NET 3.5开发Web应用程序.该应用程序有数百个表.我在研讨会上被告知我应该为整个应用程序使用一个.DBML文件,而不是使用多个.DBML文件(stackoverflow中也有一个帖子说同样的事情).鉴于我有这么多表使用一个.DBML文件是有意义的还是我最好创建逻辑分组的多个.DBML文件?
例如,我正在考虑创建以下.DBML文件:
我对使用多个.DBML文件的一个担忧是如何处理.DBML文件的更新.例如,如果在输入新的销售订单时我必须更新客户表上的字段.我该怎么处理?我当然不希望在Customer和Sales Order .DBML文件中包含customer表.我可以在TransactionScope中包装操作吗?
我不知道以下是否对答案有任何影响,但我的计划是使用存储库模式和POCO类,以便.DBML文件中对表定义的引用对我的数据访问层是本地的.
谢谢
我需要能够有条件地执行一个方法.我希望在我的代码中没有一堆IF语句有几个原因,最值得注意的是,在将来的某个时刻,该方法将不再使用.
我不确定这样做的最佳方式或我应该选择哪种模式来完成这项任务.
我所指的应用程序是一个将取代遗留系统的应用程序.遗留代码将被关闭,并且在某些时候不再使用.一旦这个时间点到来,我不想回去更改任何代码(如果可能的话).
以下是我所说的psuedo中的一个虚构的概念示例:
NewSystemEmployee.Save(Employee e)
if (Legacy System Is Running)
{
LegacySystemEmployee.Save(Employee e)
}
Run Code Online (Sandbox Code Playgroud)
该方法NewSystemEmployee.Save总是需要执行.我只想LegacySystemEmployee.Save在Legacy系统运行时执行.Legacy系统关闭后,我不想再执行了LegacySystemEmployee.Save
遗留系统消失后,我不知道如何在没有遗传的情况下完成我想要的东西:
LegacySystemEmployee.SaveOR 之前创建IF语句LegacySystemEmployee.Save方法OR的每次调用LegacySystemEmployee.Save方法,使其成为存根,仅此而已我还要求该NewSystemEmployee课程不以任何方式提及该LegacySystemEmployee课程.
有什么建议?
非常感谢