Ive得到了2個表:EF外鍵遷移拋出錯誤
[Table("Ticket_Admins")]
public class TicketAdmin
{
public TicketAdmin()
{
Name = new Record();
Name.IsRevisioned = false;
Name.IsVisible = true;
Name.Category = typeof(TicketAdmin).Name;
}
[Key]
public int Id { get; set; }
public virtual Record Name { get; set; }
public virtual TicketPost Post { get; set; }
public virtual UserProfile User { get; set; }
}
[Table("UserProfile")]
public class UserProfile
{
private string _email;
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string Email
{
get { return _email; }
set { _email = value.ToLower(); }
}
}
而且在語境映射他們:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TicketAdmin>()
.HasRequired(x => x.User)
.WithRequiredPrincipal();
base.OnModelCreating(modelBuilder);
}
但在遷移我收到錯誤:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_dbo.UserProfile_dbo.Ticket_Admins_UserId". The conflict occurred in database "aspnet-BoomzHelperPortal-dbv3", table "dbo.Ticket_Admins", column 'Id'.
上午我在這裏做錯了什麼?我正在嘗試做的是按地圖我的TicketAdmin
到UserProfile
(UserProfile.UserId = TicketAdmin.Id
)
Thak you for your time!
UPDATE: 我剛嘗試創建一個空數據庫eith這瑪的發現,它使UserProfile.UserId
一個外鍵列,但我需要的是TicketAdmin.Id
成爲FK列。 (它與所有用戶都具有UserProfile一樣,但不是每個人都有TicketAdmin設置,並且TicketAdmin是UserProfile的子項,並且與UserProfile ID具有相同的ID)。
我在我的數據庫中沒有任何Ticket_Admins表...所以遷移需要創建它,但我在我的UserProfile表中有記錄 – CodeDemen 2013-02-26 11:12:42