2

単純なデータベース構造のマッピングを作成していますが、何が問題なのかわかりません。Company と User の間に 1 対多の関係があります。1 つの会社が多くのユーザーを持つことができます。データベース構造では、それは非識別関係であり、ユーザー側の companyID はオプションです (私のデータベースと私のエンティティで)。

これが私のコードです:

ユーザーエンティティ

public class User
    {
        public int userID { get; set; }
        public int? companyID { get; set; }

        public virtual Company Company { get; set; }
    }

会社の実体

public class Company
{

    public int companyID { get; set; }
    public virtual ICollection<User> Users { get; set; }
}

マッピング コンテキスト

   public class FreelauncherContext : DbContext
   {
    public IDbSet<User> Users { get; set; }
    public DbSet<Role> Roles { get; set; }
    public DbSet<Company> Companies { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();

        /*************USERS**************/
        modelBuilder.Entity<User>().HasKey(t => t.userID);
        modelBuilder.Entity<User>().ToTable("user", "freelauncher");
        modelBuilder.Entity<User>().Property(t => t.companyID).HasColumnName("company_id");
        modelBuilder.Entity<User>().HasOptional(t => t.Company).WithMany(t => t.Users).HasForeignKey(t => t.companyID); 
        /*************COMPANY**************/
        modelBuilder.Entity<Company>().HasKey(t => t.companyID);
        modelBuilder.Entity<Company>().ToTable("company", "freelauncher");
     }

ここには間違いがないので、データベースでエラーを検索していますが、何も見つかりません...

何か提案はありますか?

編集

リレーションシップとリレーションシップに関連する ID を削除して挿入を実行すると、エラーは発生せず、挿入は保存されます

4

1 に答える 1