Не удается создать сопоставление внешнего ключа EF

У меня есть две таблицы в SQL User и UserDefaultModel у меня есть ассоциация внешнего ключа

  <AssociationConnector Association="Ins_PricingDBModel.FK_UserDefaultModel_Users" 
    ManuallyRouted="false" />

Мне нужно реализовать это же сопоставление с помощью ModelBuilder. Это то, что я пытался

   modelBuilder.Entity<UserDefaultModel>() 
            .HasRequired(c=>c.User) 
            .WithMany() 
           .HasForeignKey(c => c.Id);

public class UserDefaultModel : Entity 
{ 

    public string DefaultModel { get; set; } 
    public virtual User User { get; set; } 
}

Но я все еще не могу сопоставить значения.Допустим ли синтаксис?

1 ответ

  1. Модели должны выглядеть так:

    public class User
    {
        public User()
        {
        }
    
        public int UserId { get; set; }
        public int UserDefaultModelId { get; set; }
    
        public virtual UserDefaultModel UserDefaultModel { get; set; }
    }
    
    public class UserDefaultModel
    {
        public UserDefaultModel()
        {
            Users = new List<User>();
        }
    
        public int UserDefaultModelId { get; set; }
    
        public virtual ICollection<User> Users { get; set; }
    }
    

    И один ко многим, используя FLuent API

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //one-to-many 
        modelBuilder.Entity<User>()
                    .HasRequired<UserDefaultModel>(s => s.UserDefaultModel) // User entity requires UserDefaultModel 
                    .WithMany(u => u.Users); // UserDefaultModel entity includes many User entities
    
    }
    
    1. Сущность пользователя требует UserDefaultModel
    2. Сущность UserDefaultModel включает много пользователей