3

MYSQL DB 用の EF パワー ツールを使用してコードを生成するために、Reveres コード Eng 内部を作成しました。テーブルを非常によく読み取ることができます。何かを保存しようとすると、以下の例外が発生します。私はこのフィールドを設定しませんし、このフィールド名でソリューションに何も持っていません。

            ProjectContext db = new ProjectContext();
            Person person = new Person();
            person.UpdatedAt = DateTime.Now;
            person.UserId = 1;
            person.PersonName = "test";
            db.Persones.Add(person);

            db.SaveChanges();

{"Unknown column 'Discriminator' in 'field list'"}

編集 このクラスを継承している別のクラスがあることに気付きました

public class Student:Person {

}

その継承を削除すると、機能しました。しかし、誰かが理由を知っていますか?何か案は?

4

1 に答える 1

4

問題は、あるクラスが他のクラスから継承している場合、このフィールドが自動的に追加されることです。このフィールドは、EFが魔女の記録が学生を表し、魔女の記録が人だけであることを知ることができるようにするために使用されます。

soadypによって言及されているこの記事は、これをよりよく説明しています。

codefirstで作成されたモデルは、デフォルトでTPHを使用します。

于 2013-02-26T06:54:21.283 に答える