- 開発技術
SQLKataの使用例
- SQLKata
SQLKataは、C#開発者向けのSQLクエリビルダーライブラリです。紹介と活用方法については、こちらの記事(https://smallit.co.jp/blog/a6115/)で解説していますので、ご参照ください。
本記事では、SQLKata.QueryのINSERT文の記載方法について解説します。
基本的なINSERT文の記載方法
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
1 2 3 4 5 6 7 8 9 |
// userのINSERT Query userQuery = factory.Query("smallit.user"); userQuery.Insert(new { id = userEntity.Id , name = userEntity.Name , address = userEntity.Address , create_at = DateTime.Now.ToString("yyyy/MM/dd") , update_at = string.Empty }, tran); |
まず、Queryメソッドを実行し、クエリを管理するオブジェクトを取得します。QueryFactoryにつきましては、こちらの記事(https://smallit.co.jp/blog/a5374/)をご参照ください。
引数には、INSERT対象となるテーブル名をスキーマ指定で記述します。
また、InsertメソッドでINSERTを実行します。
この際、第1引数には登録項目を『カラム名 = 値』のオブジェクト型を指定します。
トランザクション管理をする場合は、第2引数にトランザクション管理オブジェクトを指定します。
数字始まりのカラムを含む場合のINSERT文の記載方法
次に、数字始まりのカラムを含むテーブルへのINSERTなどの、基本的な記載で実行できない場合の記載方法の紹介をします。
1 2 3 4 5 6 7 8 9 10 |
// userのINSERT Query userQuery = factory.Query("smallit.user"); userQuery.Insert( new Dictionary<string, object> { { "id",userEntity.Id}, { "name",userEntity.Name}, { "address",userEntity.Address}, { "create_at",DateTime.Now.ToString("yyyy/MM/dd")}, { "update_at",string.Empty}, }.ToList(), tran); |
極稀なケースではありますが、数字から始まるカラムが存在する場合、基本的な記載方法で実行するとデータが格納できないことがあります。指定するオブジェクトをDictionary型で記載することで、格納することが可能です。
最後に
公式サイトの例文を参考に、最終的なSQLをイメージしながら書く必要がありますが、可読性や保守性に富んでいるORMだと思います。
今回の記事が、どなたかのお役に立てれば幸いです。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>