如何在ASP.NET MVC中结合标识上下文和EF上下文

时间:2015-12-03 03:36:02

标签: asp.net-mvc entity-framework asp.net-identity

我正在ASP.NET MVC中开发我的第一个项目,我想改进,我已经完成了。我有identity authorization的网络应用程序, 所以每个用户都可以使用自己的凭据登录。

我已完成event/applicationuser model,控制视图,因此我可以显示,修改或删除事件以及用户。

我想要做的是,每个用户都应该有选择选择一个或多个事件并注册所选事件的选项。用户应该能够在成功登录后看到他的所有事件。

所以我必须创建用于用户和事件之间通信的新模型。问题是,该用户由IdentityDbContext继承,事件由DbContext继承。有谁知道一些简单的方法来解决我的问题?

这是我的代码:

1,ApplicationUser

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {

      public static ApplicationDbContext Create()
      {
        return new ApplicationDbContext();
      }

    }

2,事件模型

 public class Event
{

    public int ID { get; set; } 

    public string Name { get; set; }

    public DateTime? EventDate { get; set; }

    public string EventLocation { get; set; }

    public string Description { get; set; }

}

3,事件背景

public class Context:DbContext
{

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }

    public DbSet<Event> Event { get; set; }

4,模型EventParticipant在用户和事件之间进行通信 - 不工作

public class EventParticipant
{
    public int ID { get; set; }
    public string ApplicationUserID { get; set; }
    public bool Status { get; set; }

    public ApplicationUser ApplicationUser { get; set; }

    public virtual ICollection<Event> Event { get; set; }

}

1 个答案:

答案 0 :(得分:0)

Identity具有用于身份上下文的ApplicationDbContext类。 我转到ApplicationDbContext类并将其设置为部分,并创建一个具有相同名称的类并将其设置为部分。 我在课堂上写了上下文的配置 并创建我的迁移而没有任何问题。