C#およびEntity Frameworkの新機能です。データベースクラスのフィールドと初期化に関する質問があります。データベースクラスインスタンス、フィールド、エンティティフレームワーク
私は先生からEntity Frameworkを介してMySQLデータベースに接続しているプログラムでいくつかのコードを受け取りました。
これまでは、データベースに物を追加するための内部メソッドを最初に作成した例を見てきました。今まで見たことの例:
using (var db = new p4_databaseEntities())
{
cp_car carEntity = new cp_car();
carEntity.make = car.make;
carEntity.model = car.model;
carEntity.year = car.year;
db.cp_car.Add(carEntity); //
db.SaveChanges();
MessageBox.Show("A Car has been added");
}
this.Close();
cp_carはデータベース内のテーブルであり、プログラム内のクラスです。 dbはデータベースの現在のインスタンスです。
今、私が受け取ったコードでは、これはこのように行われていません。それは別の問題で行われます。 BtwプログラムはWindowsフォームです。
最初のフォームウィンドウで、コンストラクタ内でデータベースの新しいインスタンスを作成し、LinqQueriesという別のクラスのinit というメソッドを呼び出します。そのためのコード:
public Form1()
{
InitializeComponent();
p4_databaseEntities db = new p4_databaseEntities();
LinqQueries.Init(db);
this.CenterToScreen();
}
LinqQueriesクラスがどのように見えるか:
private static p4_databaseEntities _db;
public static void Init(p4_databaseEntities db)
{
_db = db;
}
私は彼が、彼はまた、initメソッドで呼び出されるコンストラクタ、データベースの新しいインスタンスを作成し理解しています。このメソッドは、dbオブジェクトを_dbとして定義しました。現在、彼はデータベースにデータを追加または削除するたびに、彼はdbではなく_dbを使用しています。
私の質問は、これは、initメソッドがp4_databaseEntities型(データベースクラスの名前)の静的フィールドをオブジェクトとして割り当てることを意味しますか? _dbの値はオブジェクトですか?オブジェクトへの参照ですか?また、データベースに変更を加えたときに同じフィールドを何度も繰り返し使用していることに気がつきました。これにより、プログラムの寿命を延ばすことができないアクティブなオブジェクトである可能性があります。
誰でもこれを明確にすることができれば大いに感謝します。何らかの間違いがあった場合は、間違いや誤った言い訳を言い訳してください。 C#とEntity Frameworkの新機能です。
ありがとうございます。
誰がコードを書いたのですか?著者に尋ねることができますか? – mjwills