c# - 拥有较大的 dbContext 是否会影响性能?

标签 c# asp.net performance entity-framework dbcontext

我正在构建一个网络应用程序,该应用程序将在一个数据库中包含 30-35 个表。现在的问题是我想将应用程序分成 3 个不同的前端(不同的团队想要不同的东西)。 3 个不同的项目。

App1 可能使用 15-20 个表,App2 可能使用 10 个,App3 可能使用 15 个。

我正计划制作一个名为 Models 的项目,该项目具有包含数据库中所有表的 dbContext,并将其用于 Web 应用程序项目。如果我需要添加或更新数据库,我可以只更新那个模型项目。

一位同事提到您应该只包含您需要的内容,所以我应该为每个 Web 项目创建 3 个单独的 dbcontext,否则会因包含不必要的表而影响性能。

最佳答案

回答标题中的问题:不,我还没有看到极大的 DbContext 对性能有任何影响。在我工作过的一个项目中,DbContext 定义了将近一千个 DbSet,配置时间(执行对 的调用所花费的时间OnConfiguringOnModelCreating) 大约需要 2 秒,每个实体都是通过 Fluent API 配置的;所以你可以说只有 35 个实体的命中可以忽略不计(如果有的话)。

也就是说,您使用一个还是多个 DbContext 取决于您将如何使用它们。如果数据有明确的分离,您可以明确地说“此表将仅在此处使用”并且最终不会重复 DbSet,则可以将它们分开。

关于c# - 拥有较大的 dbContext 是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48704757/

相关文章:

c# - 如何使用 C# 登录到 ASP.Net Forms Authenticated 站点?

c# - 在 ASP.NET GridView 中使用 C# 三元运算符

jquery - 使用 Jquery 添加大块 HTML

matlab - `eval` 与 `str2func` 相比从字符串评估函数的性能

c# - 创建多个小文件的性能

c# - 我如何判断我的方法是否被与主 UI 线程不同的线程调用?

c# - 格式化以下字符串的最有效方法是什么?

c# - F# 和企业软件

asp.net - 更改 ASP.NET 成员资格配置

c# - 如何对 Dynamic 对象使用 Parallel.ForEach 方法