【问题标题】:Should i create a new DbContext object in MVC5 ASP.Net Project我应该在 MVC5 ASP.Net 项目中创建一个新的 DbContext 对象吗
【发布时间】:2016-09-28 18:38:53
【问题描述】:

我正在使用 Visual Studio 2015 创建一个项目。该项目是从 asp.net 项目模板创建的(选中 MVC 复选框)。

自动生成多个文件(例如用于用户管理)。 我有一个名为 IdentityModels.cs 的文件,其中包含 IdentityDbContext(用于用户表)。

我想为我的应用程序创建其他表/实体。这是我所做的:A 创建了第二个 Context 类,继承自 DbContext。

但我想知道为同一个数据库拥有 2 个 DbContext 是否是一件好事。 我应该把所有东西都放在 IdentityDbContext 中吗?或者为我的项目创建 2 个数据库(一个用于身份验证,另一个用于我自己的表)?

谢谢

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我建议保留 IdentityDBContext 并在代表您的数据访问层的单独类库项目中创建另一个数据上下文

    当您运行迁移时,您将指定上下文名称,该名称始终是第二个,一旦您创建了身份表,您将不再需要 IdentityDBContext 进行迁移

    【讨论】:

    • 我个人将相同的 DbContext 用于我的项目中的 Identity 和其他表。我认为将它们分开必须有一个令人信服的理由,例如,如果您想为多个项目使用相同的用户群。我只是想知道将它们分开的理由是什么?
    • Identity Context 主要关注用户身份验证,如果将其移至数据访问项目,则必须添加对 Microsoft.AspNet.Identity.Core 和许多其他没有任何内容的程序集的引用在数据访问层内做,这就是为什么我把它分开
    • 你说Identity跟数据访问层没有关系,但不是直接跟底层数据源和它的结构有关吗?另外,如果您使用身份框架,这就是您访问用户信息的方式?
    • 只有 Microsoft.AspNet.Identity.EntityFramework 与数据访问层相关,其余程序集与数据库无关,您可以选择另一种存储用户的方式
    • 看起来Microsoft.AspNet.Identity.EntityFramework 依赖于Microsoft.AspNet.Identity.Core
    猜你喜欢
    • 2017-02-22
    • 2010-12-23
    • 1970-01-01
    • 2012-11-13
    • 2015-05-13
    • 2013-09-23
    • 1970-01-01
    • 2020-09-10
    • 2014-01-16
    相关资源
    最近更新 更多