【发布时间】:2014-04-15 23:52:58
【问题描述】:
我什至不确定我是否能正确地表达这一点,但是......
我开始使用代码优先的实体框架来构建解决方案,并且开始感觉到我正在用太多特定于 DB 的信息污染我的域类(EF 将用来生成 DB 的类):我必须使某些方法虚拟化才能发生延迟加载,我正在将明确针对数据库配置的属性添加到我的属性中,等等。我还担心这些课程在整个项目中的普及程度。
首先,我是否有道理和/或我是否从根本上误解了应该如何使用 EF?
其次,如果我理解这一点,我的问题是:是否有其他人区分用于生成数据库的代码优先类和域类(可能使用自动映射器从其他)?
【问题讨论】:
-
对我来说很有意义,但如果没有更多研究,恐怕我不知道答案,希望其他人能够提供帮助。
-
好的,我也会在programmers.stackexchage 上试试。干杯。
-
根据我的经验,领域类和代码优先类之间没有区别,它们是相同的类。如果您使用与 EF 相关的属性来装饰它们(这绝对是丑陋的,并且在您的域库中添加了对 EF 的依赖),您可能会考虑改用 Fluent API。这样可以使您的域类更干净,并将所有 EF 映射放在一个地方,我更喜欢这一点。花一些时间学习它,我认为这值得你花时间:msdn.microsoft.com/en-us/data/jj591620.aspx
标签: c# entity-framework architecture