将实体框架放置在我们的解决方案中的啥位置?

Posted

技术标签:

【中文标题】将实体框架放置在我们的解决方案中的啥位置?【英文标题】:Where to place the entity framework in our solution?将实体框架放置在我们的解决方案中的什么位置? 【发布时间】:2011-07-30 08:41:27 【问题描述】:

好的,所以我们有一个包含以下项目的解决方案:

业务逻辑 实体 数据访问 实用程序 单元测试 用户界面

这是一个非常大的企业级应用程序。我的问题是,我们将实体框架放在哪里?一方面,EF 似乎是一种数据访问技术,应该进入 DataAccess 项目。但另一方面,它会生成自己的实体,这些实体应该放在我们已经很大的实体项目中。

哪个项目更适合实体框架?

是否可以从 EF 中的持久化逻辑中拆分实体?

【问题讨论】:

请注意,如果您的应用程序足够大,您应该创建多个 edmx 模型。 我们实际上正在将我们的数据层转换为更现代的层。我们想使用 EF。所以一开始它只是一个 EDMX,但随着我们慢慢地将所有项目过渡到使用新的数据层,我们会添加更多。 你在说多少个实体?我遇到了超过 100 个实体的模型设计器问题和元数据加载性能问题。 这个问题不是关于我们有多少实体或它的表现如何:) 是的,这完全取决于您。我只是让你知道我在使用大型应用程序和实体框架的经验中遇到了什么 【参考方案1】:

将 EDMX 文件放入 DataAccess。为实体添加 T4 模板并将其从 DataAccess 移动到实体(您可能必须在模板中修改 EDMX 的路径)。它会起作用的——我一直在使用它。

编辑:

这里是Walktrhough for POCOs,但它应该与 STE 相同。

【讨论】:

任何链接可以帮助我做到这一点?我以前从未听说过。 你介意给我一个你在做什么的小例子吗?你让它听起来很简单,但我正在寻找的所有资源都让它听起来更复杂。我以前从未使用过 T4 模板。如果您愿意一步一步快速完成,我将不胜感激。我知道如何使用 EF,但是这个模板的东西让我很困惑。 我认为提供的链接正在逐步显示示例。检查它并询问不清楚的具体步骤。 你说你一直在使用它。我想要的只是一个如何做的样本。 最后是一个很好的例子,说明如何将您的实体分离到他们自己的项目中(每个人都应该这样做 IMO),而无需像我之前看到的那样创建回数据层的循环引用。 +1 并感谢您提供该链接。【参考方案2】:

我可能误解了您的问题,但我首先建议的是为您的实体框架创建一个新项目。

它是否有充分的理由与其他项目一起使用?将其分开使其体积更小,更易于管理。还可以降低依赖关系。

【讨论】:

你误解了这个问题。 EF 要么进入我们的数据访问项目,其中包含访问数据库的代码。或者它需要进入我们定义了所有自定义实体对象的“实体”项目。最终 EF 会用它生成的对象替换这些自定义对象。 没有意识到依赖关系。

以上是关于将实体框架放置在我们的解决方案中的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章

我应该将瞬态域类放在 grails 应用程序中的啥位置?

将迁移放在 Laravel 5.1 包中的啥位置?

将 logback.xml 放在 Tomcat 的啥位置?

我应该将 <script> 标签放在 HTML 标记中的啥位置?

Android - 我们应该将用户名和密码保存在设备内存中的啥位置?

标记位存储在直接映射缓存中的啥位置?