1

私は 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 の名前に従っていないことに気付きました。わかりませんが、おそらくそれが問題の原因である可能性があります。

4

1 に答える 1

0

Dismissile が言ったように、EF は 1 対 1 の関係であるため、外部キーを保持するための余分な列を作成しません。これは正常な動作であり、実際には何も問題はありません。

于 2014-07-31T05:42:09.497 に答える