我有一个派生自IdentityUser的ApplicationUser类。我在Asp.Net Identity中使用ApplicationUser类来创建成员资格表。我已将与成员资格相关的所有功能编译成DLL。
现在在我的另一个项目中我正在使用这个DLL。在这个项目中,我使用Code First来生成数据库。 我有这样的模型
class Company
{
int CompanyID{get;set;}
string UserID {get;set;} //Foreign Key to the ApplicationUser "Id" column
virtual ApplicationUser {get;set;}
}
现在我的代码中第一个DBContext我想使用ApplicationUser作为公司模型的导航属性。
如何在不触及单独DLL中的ApplicationUser类的情况下实现此目的?
答案 0 :(得分:0)
有两种方法可以实现这一目标。
首先,使用DataAnnotations
:
using System.ComponentModel.DataAnnotations.Schema;
class Company
{
public int CompanyID{get;set;}
public string UserID {get;set;}
[ForeignKey("UserID ")]//Tells to EF that UserId is corresponds to this navigation prop
public virtual ApplicationUser ApplicationUser{get;set;}
}
其次,在Context
类中使用模型构建器:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>().HasRequired(x => x.ApplicationUser)
.WithMany().HasForeignKey(x => x.UserID);
}