【问题标题】:C# Common DbContext for ASP.NET Identity with webformsC# Common DbContext for ASP.NET Identity with webforms
【发布时间】:2018-01-15 01:35:33
【问题描述】:

我是 .NET 的初学者,但我对使用 3 层架构构建 Web 应用程序相当熟悉。我通常有一个用于 webforms 的 webapplication 项目和一个 wpf 应用程序项目来保留我的域、控制器和数据访问层类。

我熟悉创建 DbContext 类并使用它通过 EF 处理数据库。我已将 .NET Identity 添加到我的 Web 应用程序项目中,但我需要更改身份用户并向其添加更多数据。

我正在关注this 教程来完成此操作,但它是为 MVC 设计的。我目前有 2 个单独的上下文文件,一个用于身份,另一个用于我的常用目的。有没有办法让我拥有一个上下文?

我的 DbContext 看起来像,

    namespace ExammerCore.Infrastructure
{
    class ExammerContext : DbContext
    {
        public ExammerContext()
            : base("DefaultConnection")
        {
            
        }
    }
}

我使用教程制作的身份 DbContext 看起来像,

namespace ExammerCore.Infrastructure
{
    class IdentityContext : IdentityDbContext<ApplicationUser>
    {
        public IdentityContext()
            : base("DefaultConnection")
        {
        }
    }
}

我的 IdentityModels.cs 看起来像,

namespace ExammerCore.Domain
{
    public class ApplicationUser : IdentityUser
    {

        //You can extend this class by adding additional fields like Birthday
        public string BirthDate { get; set; }

    }

}

我怎样才能将这两者混合在一起以拥有一个 DbContext 类?还是有另一种方法可以在不继承身份类的情况下向用户添加自定义字段? 我的解决方案结构如下所示, Solution structure

我google了很多都没有找到答案。

【问题讨论】:

    标签: c# asp.net entity-framework webforms asp.net-identity


    【解决方案1】:

    换行

    class ExammerContext : DbContext
    

    class ExammerContext : IdentityDbContext<ApplicationUser>
    

    将所有 Identity DbSet 拉入您的 ExammerContext

    【讨论】:

    • 这就是我所要做的吗?在那之后我也可以通过这个上下文管理我的模型的其余部分吗?
    • 是的,您不需要单独的 IdentityContext。您将只剩下更新后的 ExammerContext。
    【解决方案2】:

    在您的 dbcontext 中,您应该具有表示用于构建表的实体的属性......应该看起来像这样......

    class ExammerContext : DbContext
    {
        public IDbSet<ApplicationUser> ApplicationUsers { get; set; }
        // add other classes/tables here.
    
        public ExammerContext()
            : base("DefaultConnection")
        {
    
        }
    }
    

    这样你只需要你的上下文。

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 2016-07-21
      • 2015-06-17
      • 1970-01-01
      • 2014-04-14
      • 2018-12-31
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多