我有一个asp.net mvc 2.0应用程序,其中包含像日历,管理等区域/模块...有可能有多个区域需要访问相同的回购的情况,所以我不知道在哪里放置数据访问层和存储库。你会如何组织这个在asp.net mvc?
第一个选项: 我应该创建数据访问层的文件在每个领域及其随行库(LINQ到我的情况,SQL),所以每个区域仅包含由这些领域所需的表,和存储库。
好处是,运行该模块所需的一切都是一个地方,因此它更加封装(无论如何,在我的脑海中)。缺点是我可能有重复的查询,因为其他模块可能使用相同的查询。
第二个选项 或者,将DAL和存储库放在区域之外并将它们视为全局?
好处是我不会有任何重复的查询,但我可能会加载很多不必要的查询和DAL表,为某些模块。为未来的项目重用或修改这些模块也有更多的工作(尽管重用它们的机会很渺茫:))
哪个选项更有意义?如果有人有更好的方式,我很乐意听到它。
谢谢!
“但我可能正在为特定模块加载大量不必要的查询和DAL表。” - 我的意思是加载模型不需要或不使用的查询。 – chobo 2010-05-16 05:37:30
也许我不了解情况,但不应该加载查询和进行数据库调用,而不管您选择何种应用程序结构,都不需要或不使用数据库调用。例如:“管理”区域和“日历”区域都可以使用他们自己的“CalendarRepository”实例,但您应该创建必要的公共方法,以便只从数据库返回所需的数据。我想我很难想象一个场景,其中有很多不必要的查询和DAL被加载... – 2010-05-16 06:57:00
我希望对此有更多的意见,但从我的研究看来,有很多方法可以做事情,似乎归结为主要偏好。 – chobo 2010-05-17 22:31:08