【发布时间】:2018-03-23 03:08:39
【问题描述】:
我正在使用 fluent api 为我的实体数据库设置关系。我有典型的 AspNetUsers 表,该表有一个名为 Id (String) 的列,它是表的主键。我扩展了 IdentityUser 并赋予它其他属性,2 个这样的属性是 AdvisorProfile 和 StudentProfile。
ApplicationUser 具有可选的 AdvisorProfile 和 StudentProfile。 AdvsiorProfile 和 StudentProfile 具有必需的帐户 (ApplicationUser)。
我的问题是,当表格生成时,AdvisorProfile 有一个名为 Account_Id 的属性,它是指向 AspNetUser 表格中 ApplicationUser 的链接。我想更改该命名约定,但我流畅的 api 代码似乎没有什么不同。
Fluent Api for Account -> 顾问/账户外键命名
//Advisor Profile to Login Account
modelBuilder.Entity<ApplicationUser>().HasOptional(x => x.AdvisorProfile).WithRequired(x => x.Account).Map(x => x.MapKey("AdvisorFK"));
modelBuilder.Entity<ApplicationUser>().HasOptional(x => x.AdvisorProfile).WithRequired(x => x.Account).WillCascadeOnDelete(false);
modelBuilder.Entity<Advisor>().HasRequired<ApplicationUser>(x => x.Account).WithOptional(x => x.AdvisorProfile).Map(x => x.MapKey("AccountFK"));
modelBuilder.Entity<Advisor>().HasRequired<ApplicationUser>(x => x.Account).WithOptional(x => x.AdvisorProfile).WillCascadeOnDelete(false);
表格生成代码:
CreateTable(
"dbo.Advisors",
c => new
{
Id = c.Long(nullable: false, identity: true),
FirsName = c.String(),
LastName = c.String(),
MiddleName = c.String(),
Email = c.String(),
PhoneNumber = c.String(),
PrimaryContact = c.Int(nullable: false),
Account_Id = c.String(nullable: false, maxLength: 128),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.AspNetUsers", t => t.Account_Id) //Here is the issue
.Index(t => t.Account_Id);
【问题讨论】:
标签: c# entity-framework ef-fluent-api