【问题标题】:Maximum number of entity you have ever used for entityframework in your projects?您曾经在项目中用于实体框架的最大实体数?
【发布时间】:2013-07-30 09:16:34
【问题描述】:

我们的 sql server 数据库中有 500 多个表。

我们希望将我们的项目更新为新一代技术。我们想使用实体框架作为 DAL 的 ORM。我们开始使用 c# -> asp.net -> mvc3 ----soa-- wcf -> (Repository Pattern) EF 开发项目的小模块。

在最初的项目中,我们几乎在实体框架中使用了 50 多个实体。性能似乎不错。但我们担心的是,如果实体数为 500,性能会如何。

您对我们有什么建议?

【问题讨论】:

  • 我假设你想继续工作数据库优先?
  • 您对使用 ORM 有什么顾虑?你在什么样的环境中运行?您会发现,对于 500 多个表,EF 的启动时间会非常长。此外,如果您尝试从数据库中提取大量数据,您将遇到内存问题(因为您需要分配所有内存来存储您下拉的对象)。但是,归根结底,您所说的“表演者”是什么?
  • 是的,我们正在使用数据库优先方法。我们正在开发 ERP 软件 CRUD 应用程序。请举例说明您询问的环境。
  • 顺便说一句,尽管您的解决方案是数据库优先,但您可以使用 t4 模板或您最喜欢的代码生成器相当快地测试代码优先和 1000 个表,以确认一切正常
  • 我不太擅长t4模板。你能发送这 1000 个表的链接示例项目吗?

标签: c# entity-framework entity-framework-4


【解决方案1】:

我没有发现 500 有任何问题。虽然到目前为止我只测试了 200。

首先,您不必在每次访问数据库时都使用 MEGA 上下文。 use bounded contexts as an example 您可以有 1 个用于迁移目的的大型上下文。一旦脱落。 然后是日常使用的较小的仅访问上下文。

EF 6 在这方面提供了更好的支持,更容易拥有多个上下文。 EF 6 specifications - see Multiple Contexts per Database

然后查看关于 EF 的性能说明。 performance notesmore performance notes

您还可以在上下文中生成编译视图,从而改善初始加载。 见 EF powertools ef Powertools for VS

【讨论】:

  • 感谢您的关注。你的建议似乎很好。我会调查你的网址链接。谢谢。我会等待这样的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
相关资源
最近更新 更多