我有一个数据库架构,&我首先使用EF6代码迁移。 我想将dbo.aspnetuser中的外键添加到我的数据库中的现有列(使用MSSQL) 可能吗?怎么做?
将迁移文件更改为此文件无效: 无法创建具有列'consumer_id'的表'dbo.AspNetUsers'上的外键,因为无法确定主键列。使用AddForeignKey fluent API完全指定外键。
CreateTable(
"dbo.AspNetUsers",
c => new
{
Id = c.String(nullable: false, maxLength: 128),
UserName = c.String(),
PasswordHash = c.String(),
SecurityStamp = c.String(),
contact_firstname = c.String(),
contact_lastname = c.String(),
contact_phone = c.String(),
contact_phone2 = c.String(),
contact_email = c.String(),
country = c.String(),
state = c.String(),
city = c.String(),
street = c.String(),
postcode = c.String(),
longitude = c.Double(),
latitude = c.Double(),
consumer_id = c.Long(),
Discriminator = c.String(nullable: false, maxLength: 128),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.fx_service_consumers", t => t.consumer_id, cascadeDelete: true);
答案 0 :(得分:0)
您是否使用流畅的api将对象映射到表格?
我用它来映射Address in Person对象的外键:
this.HasRequired(t => t.PersonAddress ).WithRequiredDependent()
.Map(m => m.MapKey("IdAddressColumnNameInUserTable"));
和我的对象
public class Person
{
public int id {get;set;}
public virtual Address PersonAddress {get;set;}
}
public class Address
{
public int id {get;set;}
public int city {get;set;}
...
}
答案 1 :(得分:0)
经过大量的阅读和辩论,似乎没有一个好的方法在表'dbo.AspNetUsers'上使用外键,我设法继续没有外键,它对我来说很好。