0

C# プロジェクトでデータベース接続に Entity Framework を使用しています。

データベースに 3 つの列を持つテーブルがあるとします: table: Car 列: id、color、type、numberOfDoors

このテーブルの新しいレコードを作成する方法は次のとおりです。

Car c = new Car();//default constructor
c.color = "blue";
c.type = "Opel";
c.numberOfDoors = 2;
myDatabase.tblCar.AddObject(c);
myDatabase.SaveChanges();

プロジェクトの多くの場所でこれを行っているため、最初の 4 行が何度も繰り返されます。だから私は考えていました、なぜEntity Frameworkにはパラメーターを持つコンストラクターがないのですか? dbでnullになる可能性のある列がこれの理由である可能性があると思いました。

4

2 に答える 2

1

Entity Framework は、可能な限り一般的なものにしようとしています。さらに、一部のモデルには 10 以上のプロパティがある場合があります。それらの小さなサブセットのみを割り当てる必要がある場合、それは非常に面倒です。もう 1 つの理由は、Entity Framework 内でモデルを構築するのは面倒だということです。

クラスはpartialキーワードで生成され、自分で追加できるはずです。

于 2013-03-21T16:33:16.763 に答える
1

EF は、生成するエンティティ (クラス) ごとに静的コンストラクターの CreateX メソッドを生成します。たとえば、私の User クラスの 1 つで、次のことができます。

User user = User.CreateUser(userID, password, email, userTypeId);

これにより、エンティティ クラスの新しいインスタンスをすばやくセットアップするという点で、必要なことのほとんどが実行されます。もちろん、これは新しいインスタンスをコレクションに追加したり、変更を保存したりしません。50,000 個のインスタンスを作成したい場合、毎回保存するのは無駄です。

于 2013-03-21T16:35:16.120 に答える