您对数据访问层有何建议?使用ORM,如Entity Framework和Hibernate OR Code Generators,如Subsonic,.netTiers,T4等?
对我来说,这是一个很容易的,你生成代码.
我将稍微偏离主题,因为在游戏中存在更大的潜在谬误.谬论是这些ORM框架解决了对象/关系阻塞不匹配问题.这种说法是一个赤裸裸的谎言.
我发现解决对象/关系阻抗不匹配的最佳方法是独占使用OOP并使用对象数据库或仅使用关系数据库的惯用语并忽略OOP.
抽象"一切都是一张桌子"对我来说,比抽象"一切都是一个阶级"强大得多.它需要更少的代码,更少的智力工作,并在您编写数据库而不是对象模型时导致更快的代码.
这对我来说这显而易见.如果您的应用程序是数据驱动的,那么您的代码肯定也应该是数据驱动的吗?但要说这是一个极具争议性的问题.
这里的核心问题是当与数据库结合使用时,OOP成为一个真正漏洞的抽象.当您看到代码在数据库中生成的流量时,在写入OOP习语时看起来非常合理的代码看起来非常疯狂.当这种混乱成为性能问题时,OOP是第一个受害者.
真的没有办法解决这个问题.数据库使用数据集.OOP专注于类的实例.试图嫁给两人总是以离婚告终.
所以为了回答你的问题,我相信你应该生成你的类并尝试让它们尽可能地映射底层数据库结构.