我将 ASP.NET MVC 2 和 C# 与 Entity Framework 4.0 结合使用,针对规范化的 SQL Server 数据库进行编码。我的数据库结构的一部分包含一个条目表,其中包含与包含驱动程序、汽车、引擎、底盘等的子表相关的外键。
我正在学习 Nerd Dinner 教程,该教程为晚餐设置了一个存储库,这很公平。我是为车手做一个,为引擎做一个,为汽车做一个等等,还是为参赛做一个大的?
哪种是此类工作的最佳实践?我对这种编码方法还很陌生。
最佳答案
我想对此确实没有单一的“最佳实践”——这取决于您的编码风格和应用程序的要求。您绝对可以为系统中的每个实体类型创建一个存储库 - 这样就可以正常工作。
在你这里的情况下,我可能至少会考虑为驱动程序建立一个存储库,并可能为汽车、发动机、底盘建立第二个存储库(因为它们属于同一专业领域 - 它们相互关联,它们“属于”在一起)。
但是:当然,如果汽车、引擎和底盘的单一存储库过于臃肿,您可能会考虑将其拆分为三个独立的存储库。
我会尝试在存储库的数量 - 尝试将逻辑上属于一起的东西组合在一起 - 以及这些存储库上的方法数量之间找到平衡。五、十种方法没问题 - 如果你说的是 20、30 或 50 种方法,你的存储库可能太大而且不实用。
这绝对是一个架构决定,因此,它们并不是真正有很多确凿的事实来指导你——它更像是一种“直觉”和体验之类的东西。如果你还没有那种必要的经验——选择一种方法,使用它,当你完成后——用批判的眼光再看一遍,看看:它有什么用?没用怎么办?然后在你的下一个项目中,尝试一些其他的方法,并在项目结束时也质疑它的有效性。生活和学习!
关于c# - 每个表一个存储库还是每个功能部分一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2984583/