私は EF 6 コードを使用しています。まず、モデルのプロパティに対して 1 つの列が作成されない理由がわかりません。
最初のクラスは次のとおりです。
public class Original
{
public int ID { get; set; }
public string Nom { get; private set; }
public Historique Historique { get; private set; }
public Traduction Traduction { get; private set; }
}
そして、ここに2番目のクラスがあります:
public class Traduction
{
public int ID { get; set; }
public Utilisateur Traducteur { get; private set; }
public Original Original { get; private set; }
public string Content { get; private set; }
}
EF は Traduction と Original の FK 列を作成しません。(Traduction テーブルには Original の FK 列は含まれず、その逆も同様です) が、他のすべての列と FK を完全に作成します。
関係を設定するために Fluent API を使用しています。自動規則に依存することと、次のように関係を明示的に構成することの両方を試みました。
modelBuilder.Entity<Original>().HasRequired(o => o.Traduction).WithRequiredPrincipal(t=>t.Original).WillCascadeOnDelete(true);
しかし、列はまだ作成されていません。
ご協力ありがとうございました
アップデート
役に立つかどうかはわかりませんが、1 つ情報を追加したいと思います。私の Dbset はコンテキスト クラスで次のように定義されています。
public DbSet<Traduction> Traductions { get; set; }
public DbSet<Original> Originaux { get; set; }
「Originals」のフランス語複数形の場合は「Originaux」。ただし、EF によって作成されたテーブルの名前は「オリジナル」であり、DbSet の名前に従っていないことに気付きました。わかりませんが、おそらくそれが問題の原因である可能性があります。