我正在MVC 5,Visual Studio 2013,EF 6(Code First Approach)中创建一个应用程序。我已经实现了身份并且工作正常。现在我想创建一个表,其中我需要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。
谁能告诉我怎么做?我用Google搜索了它,但未能找到任何令人满意的答案。
答案 0 :(得分:0)
很简单,只需创建一个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; }
}