簡體   English   中英

不映射一對一實體框架FluentApi

[英]Not mapping ont-to-one Entity Framework FluentApi

在ReminderSetting中設置不映射。 為什么? 我嘗試獲取列表ReminderSetting,但他沒有映射嵌套對象Setting。 請幫我。

[Table("ReminderSetting")]
public class ReminderSetting
{

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int SettingId { get; set; }

    public Setting Setting { get; set; }

    public string Login { get; set; }

    public bool Value { get; set; }
}

[Table("Settings")]
public class Setting
{        
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Title { get; set; }
}

不工作

modelBuilder.Entity<Setting>();
        modelBuilder.Entity<ReminderSetting>()
            .HasRequired(x => x.Setting)
            .WithMany()
            .HasForeignKey(k => k.SettingId); 

不工作

modelBuilder.Entity<Setting>();
        modelBuilder.Entity<ReminderSetting>()
            .HasRequired(x => x.Setting)
            .WithRequiredPrincipal();

我認為以下應在ReminderSettings和Settings之間創建一對一關系:

[Table("ReminderSetting")]
public class ReminderSetting
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [ForeignKey("Setting")]
    public int SettingId { get; set; }

    public string Login { get; set; }
    public bool Value { get; set; }

    public virtual Setting Setting { get; set; }
}

[Table("Settings")]
public class Setting
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Title { get; set; }

    public virtual ReminderSetting ReminderSetting { get; set; }
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<ReminderSetting>()
        .HasKey(r => r.SettingId);
    modelBuilder.Entity<ReminderSetting>()
                .Property(r => r.SettingId)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
    modelBuilder.Entity<ReminderSetting>()
                .HasRequired(r => r.Setting)
                .WithRequiredDependent(s => s.ReminderSetting);

    base.OnModelCreating(modelBuilder);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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