以前、Dapper版を紹介しましたが、今回はEntityFrameworkというライブラリを使用したものになります。これまでに紹介したものより簡単にデータを制御できます
-
SQLServerにC#でアクセスする(Dapper版) - ナストンのまとめ
以前、SQLCommand版を紹介しましたが、今回はDapperというライブラリを使用したものになります。使い方は以前紹 ...
続きを読む
EntityFrameworkをインストールする
EntityFrameworkをNugetからインストールします
EntityFramework用クラスを作成
「追加」>「新しい項目」の順にクリックする
「データ」>「ADO.NET Entity Data Model」を選択し、名前を設定後、クラスを作成します
今回はすでに作成している、データベースからオブジェクトを生成していきます
接続するDB先を選択し、今回はユーザー名とパスワードを保存するようにしています
対象となるテーブルを選択し、「生成されたオブジェクトの名前を複数化または単数化する(S)」にチェックを付けます。これで、追加したファイルが作成されてEntityFrameworkを使用できるようになります
Sqlに情報を追加する
データベースにデータを登録します
これまでに紹介した2つよりも簡単に実装できました。BooksTableクラスは上で記載しているファイルを作成する際に同じく作成されています。SaveChangesをしないと、データベースに反映されません
public void Insert_EntityFramework(BooksTable _bookTable)
{
using (var db = new SQLConnectionTestDbContext())
{
db.BooksTables.Add(_bookTable);
db.SaveChanges();
}
}
Sqlの情報を取得する
データベースに登録されているデータを取得します
public void Read_EntityFramework()
{
var books = new List<BooksTable>();
using (var db = new SQLConnectionTestDbContext())
{
books.AddRange(db.BooksTables);
}
foreach(var book in books)
{
Console.WriteLine(string.Format("BookId:{0} BookName:{1}, BookISBN:{2}", book.BookId, book.BookName, book.BookISBN));
}
}
Sqlの情報を更新する
データベースに登録されているデータを更新します
更新対象のデータが存在しない場合は、データを作成しています。
public void Update_EntityFramework(BooksTable _bookTable)
{
using (var db = new SQLConnectionTestDbContext())
{
var item = db.BooksTables.Find(_bookTable.BookId);
if(item == null)
{
Insert_EntityFramework(_bookTable);
}
else
{
item.BookName = _bookTable.BookName;
item.BookISBN = _bookTable.BookISBN;
db.SaveChanges();
}
}
}
Sqlの情報を削除する
データベースに登録されているデータを削除します
public void Delete_EntityFramework(int _bookId)
{
using (var db = new SQLConnectionTestDbContext())
{
var item = db.BooksTables.Find(_bookId);
if(item != null)
{
db.BooksTables.Remove(item);
db.SaveChanges();
}
else
{
Console.WriteLine("対象データが存在しませんでした");
}
}
}
最後に
これまで3つのやり方でSQLに接続する方法を紹介しましたが、開発環境やコードの記述の仕方など自身にあった形、処理速度等で使い分けていけばと思いました