単純なデータベース構造のマッピングを作成していますが、何が問題なのかわかりません。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 を削除して挿入を実行すると、エラーは発生せず、挿入は保存されます