簡體   English   中英

在代碼優先EF 6中使用外鍵一對一關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM