Setting in ReminderSetting not mapping. Why? I try get list ReminderSetting, but he not mapping nested object Setting. Please, help me.
[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; }
}
Not working
modelBuilder.Entity<Setting>();
modelBuilder.Entity<ReminderSetting>()
.HasRequired(x => x.Setting)
.WithMany()
.HasForeignKey(k => k.SettingId);
Not working
modelBuilder.Entity<Setting>();
modelBuilder.Entity<ReminderSetting>()
.HasRequired(x => x.Setting)
.WithRequiredPrincipal();
I think the following should work for creating the one-to-one relationship between ReminderSettings and 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);
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.