[英]1 to 1 relationship using foreign key in code first EF 6
我在代碼優先實體框架中有一個場景,在該場景中,我需要在兩個表之間將前鍵約束設為1到1,而不使用兩個表的主鍵。
給定以下模型:
public class Appointment
{
[Key]
public int Id { get; set; }
}
public class InitialAppointment : Appointment
{
public int UserId { get; set; }
[ForeignKey("UserId")]
public User User { get; set; }
}
public class User
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public InitialAppointment InitialAppointment { get; set; }
}
User
只能具有1個可選的initial appointment
,該初始約會繼承自Appointment
:因此,我希望所有3個表之間的關系為1-1,但用戶記錄和約會記錄可以獨立存在。 但是,沒有用戶或約會,初始約會將不存在。
當我嘗試實現此功能時,我使用Fluent API規范了以下內容(以及上面的注釋):
modelBuilder.Entity<User>()
.HasOptional<InitialAppointment>(u => s.InitialAppointment)
.WithRequired();
問題是實體框架無法正確創建表,它們的生成方式如下:
如何通過數據注釋或Fluent API告訴實體框架用戶應該與初始約會具有可選的1-1關系,而初始約會應該通過約會繼承(通過1-1關系)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.