以前、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に接続する方法を紹介しましたが、開発環境やコードの記述の仕方など自身にあった形、処理速度等で使い分けていけばと思いました
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動
-
お問い合わせ | アドバンスド・ソリューション株式会社
お問い合わせはこちら