我正在构建一个网络应用程序,该应用程序将在一个数据库中包含 30-35 个表。现在的问题是我想将应用程序分成 3 个不同的前端(不同的团队想要不同的东西)。 3 个不同的项目。
App1 可能使用 15-20 个表,App2 可能使用 10 个,App3 可能使用 15 个。
我正计划制作一个名为 Models 的项目,该项目具有包含数据库中所有表的 dbContext,并将其用于 Web 应用程序项目。如果我需要添加或更新数据库,我可以只更新那个模型项目。
一位同事提到您应该只包含您需要的内容,所以我应该为每个 Web 项目创建 3 个单独的 dbcontext,否则会因包含不必要的表而影响性能。
最佳答案
回答标题中的问题:不,我还没有看到极大的 DbContext
对性能有任何影响。在我工作过的一个项目中,DbContext
定义了将近一千个 DbSet
,配置时间(执行对 的调用所花费的时间OnConfiguring
和 OnModelCreating
) 大约需要 2 秒,每个实体都是通过 Fluent API 配置的;所以你可以说只有 35 个实体的命中可以忽略不计(如果有的话)。
也就是说,您使用一个还是多个 DbContext
取决于您将如何使用它们。如果数据有明确的分离,您可以明确地说“此表将仅在此处使用”并且最终不会重复 DbSet
,则可以将它们分开。
关于c# - 拥有较大的 dbContext 是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48704757/