实体框架代码优先方法中的2个外键



我正在MVC 5, Visual Studio 2013, EF 6(代码优先方法)中创建一个应用程序。我已经实现了身份和工作很好。现在我想创建一个表,其中我需要2个外键关系-一个从dbo。AspNetUsers和另一个来自第二个表(命名为Table2)。

在我的IdentityModel.cs中,我有以下代码:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<Table2> Table2 { get; set; }
    public ApplicationDbContext() : base("ConnectionString", throwIfV1Schema: false)
    {
    }
    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}

,这是我的表2:

[Key]
[Display(Name = "ID")]
public int ID { get; set; }
[Required]
[StringLength(200, MinimumLength = 10)]
[Display(Name = "Col1")]
public string Col1{ get; set; }
[Required]
[StringLength(4000, MinimumLength = 10)]
[Display(Name = "Col2")]
public string Col2 { get; set; }

现在,我需要创建一个表(NewTable),其中有2个外键- UserID(来自dbo.AspNetUsers)和另一个来自Table2。

谁能告诉我怎么做?我在谷歌上搜索过,但没有找到任何令人满意的答案。

这很简单,只需创建一个Navigation属性。

的例子:

public virtual ApplicationUser User { get; set; }
编辑:

我建议合并两个DB Context。从长远来看,它将避免许多问题。例子:

public class MyDbContext : IdentityDbContext<ApplicationUser>
    {
        public MyDbContext () : base("DbConn",false) {
        }
        public MyDbContext (string connectionString):base(connectionString,false)
        {
        }
        public DbSet<Table1> MyTable1{ get; set; }
        public DbSet<Table2> MyTable2{ get; set; }
   }

相关内容

  • 没有找到相关文章

最新更新