前回は実際のテーブルからモデルを作成しました。
今回はEntity Frameworkを使用してテーブルにデータを登録していく方法について見ていきます。
最初におさらいですが、前回はtestというデータベースに対しuserテーブルを作成し、そこからEntity Data Modelを作成しました。
これによりObjectContextを継承したtestEntitiesが作成されました。これはソリューションエクスプローラーでEntity Data Modelを展開し、「モデル名.Designer.cs」を開いて確認することができます(下図)。

この作成されたtestEntitiesのインスタンスを使用してデータの登録を行うことができます。
まず、実験のためにuserテーブルに合わせて下図のようなフォームを作成しました。
| コントロール名(コントロール) | プロパティ | 値 |
|---|---|---|
| label1(Label) | Text | 氏名 |
| label2(Label) | Text | メール |
| label3(Label) | Text | 電話番号 |
| txtName(TextBox) | なし | なし |
| txtMail(TextBox) | なし | なし |
| txtTel(TextBox) | なし | なし |
| btnAdd(Button) | Text | 登録 |
コードは下記の通りです。
[登録]ボタンが押されると、testEntitiesのインスタンスを作成し、ユーザーがフォームに入力したデータを元に登録するデータを作成します。
次に、AddTouserメソッドでデータを追加し、最後にSaveChangesメソッドでデータを登録します。
AddTouserメソッドはEntity Data Modelを作成したときに自動で作成されたメソッドです。モデルの名称が異なればこのメソッド名も異なるものが付けられます。
そしてSaveChangesメソッドですが、データを反映させるためには必ず実行させる必要があります。忘れてしまうとデータが登録されないので注意が必要です。
// [登録]ボタンクリック時の処理
private void btnAdd_Click(object sender, EventArgs e)
{
var container = new testEntities();
// 登録データを作成する
user userData = new user()
{
Name = txtName.Text,
Email = txtMail.Text,
TEL = txtTel.Text
};
// データを追加
container.AddTouser(userData);
// テーブルにデータを反映させる
container.SaveChanges();
}
フォームに下図のようにデータを入力して[登録]ボタンを押してみます。

phpMyAdminで確認してみると、無事入力したとおりデータが登録されました。
Please follow and like us:



コメント