Entity Frameworkでのデータ追加

 この節では、Entity Frameworkを使ってデータベースにデータを追加する方法を見てみましょう。SQL文でINSERT文に該当します。

 データを追加するにはLINQの命令文ではなく、Entity Data Modelで追加したテーブルに対応するオブジェクトのAddメソッドを使って追加します。その後、DbContextクラスのSaveChangesメソッドでデータベースに反映させます。

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 EntityInsertTest

サンプルダウンロード

○ 作成の準備

 「LINQSelectTest」プロジェクトを修正して作成しましょう。LINQSelectTestフォルダーをコピーして、作成するプロジェクト名にフォルダー名を変更してください。

○ プログラム

 Mainメソッドを次のように記述してください。

Program.cs

  1. static void Main(string[] args)
  2. {
  3.  //コンテキストを生成する
  4.  BooksEntities entities = new BooksEntities();
  5.  //追加するデータを入力する
  6.  Console.WriteLine("追加する情報を入力してください。");
  7.  Console.Write("ID:");
  8.  int id = Int32.Parse(Console.ReadLine());
  9.  Console.Write("ユーザー名:");
  10.  string username = Console.ReadLine();
  11.  Console.Write("パスワード:");
  12.  string password = Console.ReadLine();
  13.  Console.Write("氏名:");
  14.  string name = Console.ReadLine();
  15.  //新しい行を生成する
  16.  Users user = new Users { Id = id, UserName = username, Password = password, Name = name };
  17.  //BooksEntitiesオブジェクトを通してUsersコレクションにデータを追加
  18.  entities.Users.Add(user);
  19.  //データベースに反映させる
  20.  entities.SaveChanges();
  21.  Console.WriteLine("登録しました。");
  22.  Console.ReadLine();
  23. }

○ 実行結果

追加する情報を入力してください。
ID:7
ユーザー名:nakamura
パスワード:npass
氏名:中村
登録しました。

データが追加された
データが追加された

○ 解説

 28行目ではUsersオブジェクトを生成して1行分のデータを生成しています。インスタンス生成時に各プロパティにデータをセットしています。31行目では14行目で生成したBooksEntitiesオブジェクトを通して、UsersコレクションのAddメソッドを呼び出しています。引数にあらかじめ生成しておいたUsersオブジェクトを指定します。すると、BooksEntitiesオブジェクトのUsersコレクションに新しい行のデータが追加されます。

 34行目ではBooksEntitiesオブジェクトのSaveChangesメソッドを呼び出しています。これによりデータベースに実際にデータが追加されます。

前へ   次へ