nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Dapper.FastCrud.ModelGeneratorで数字始まりのカラムに対応する

Dapper.FastCrud.ModelGeneratorを利用することで、DapperおよびDapper.FastCrudから利用できるテーブルに対応するクラスを手軽に作成することができます。

Dapper.FastCRUD:ModelGeneratorを使う - nuits.jp blog

しかし、標準のテンプレートではデータベースのカラム名が数字で開始していた場合、コンパイルエラーになるコードが生成されてしまいます。ここではテンプレートを修正して、数字始まりのカラムも適切に扱えるよう修正する方法を説明します。

なおGistに、この問題とあわせて、スキーマ名の明示的指定に対応したテンプレートを公開しています。こちらから GenericModelGenerator.tt と SampleModelGeneratorConfig.tt の二つのファイルをコピペすることで、対応することもできます。

Template for setting Schema name for Dapper.FastCrud.ModelGenerator · GitHub

あと良かったらこちらもどうぞ。

www.nuits.jp

それでは改修個所を解説しましょう。

続きを読む

Dapper.FastCrud.ModelGeneratorでスキーマ名を明示的に指定する

Dapper.FastCrud.ModelGeneratorを利用することで、DapperおよびDapper.FastCrudから利用できるテーブルに対応するクラスを手軽に作成することができます。

Dapper.FastCRUD:ModelGeneratorを使う - nuits.jp blog

しかし標準のテンプレートではスキーマ名が指定されないため、デフォルトのスキーマ(SQL Server だと dbo)だけ利用している分には問題ないのですが、任意のスキーマを利用していた場合、自動生成されたコードでは実行時にエラーになります。

なおGistに、この問題とあわせて、数字始まりのカラムでコンパイルエラーになる問題にも対応したテンプレートを公開しています。こちらから GenericModelGenerator.tt と SampleModelGeneratorConfig.tt の二つのファイルをコピペすることで、対応することもできます。

Template for setting Schema name for Dapper.FastCrud.ModelGenerator · GitHub

あと良かったらこちらもどうぞ。

www.nuits.jp

それではコード生成時に明示的にスキーマ名を指定するように、テンプレートを修正する方法を説明します。

続きを読む

Dapper.FastCRUD関連エントリー:目次

Dapper.FastCRUDは、Dapperの拡張ライブラリです。Dapper単体では提供されない範囲のCRUDについてのサポートを提供します。

本エントリーは、当ブログで記載した Dapper.FastCRUD 関連のエントリーの目次となります。今後も不定期に更新していきます。

  1. Dapper拡張ライブラリ比較
  2. Dapper.FastCrud.ModelGenerator
    1. ModelGeneratorを使う
    2. Dapper.FastCrud.ModelGeneratorでスキーマ名を明示的に指定する
    3. Dapper.FastCrud.ModelGeneratorで数字始まりのカラムに対応する

Dapper.FastCRUD:ModelGeneratorを使う

Dapper.FastCRUDはDapperのExtensionライブラリです。DapperのExtensionライブラリは多数ありますが、以前に簡単に比較記事を書いていますので、良かったらご覧ください。

Dapperの拡張ライブラリは何がいいのか?ちょっとだけ調べてみた - nuits.jp blog

Dapper.FastCRUDにはDapper.FastCrud.ModelGeneratorという、データベースのスキーマからModelクラスを自動生成してくれるT4テンプレートがNuGet上に公開されています。

本エントリーでは、Dapper.FastCrud.ModelGeneratorを利用してModelクラスを自動生成する方法を解説します。

あと良かったらこちらもどうぞ。

www.nuits.jp

続きを読む

新しめのSQL ServerでサンプルDB Northwind・pubsを使う方法

古めのサンプル DB の Northwind と pubs ですが、特に Northwind は簡単なテストに使いたい時がままあります。つぎのリンクからダウンロードするとmdfファイルが含まれているのですが、互換性の問題でそのままアタッチすることができません。

https://www.microsoft.com/en-us/download/details.aspx?id=23654

ここでは、二つのサンプルDBを新しめの SQL Server で利用する方法を解説します。

続きを読む

リモートのIISへVisual StudioからWebアプリをWeb Deployする

本エントリーでは Visual Studio 上で ASP.NET などで実装した Web アプリケーションをリモートの IIS 上に公開する方法を記載します。

毎回忘れてしまうんですよね…

オンプレミス環境でTFSなどから自動ビルド・自動配置するときにも、この設定が適用できます。

続きを読む

SQL Server でサンプルDBを利用する

SQL Server では公式のサンプルデータベースがGithubで複数公開されています。

github.com

本エントリーではSQL Serverのインストールから、サンプルデータベースの「Adventure Works 2017」を利用する方法について解説します。

ちなみに Adventure Works は非常に素直な?データベース設計です。ただしSQL Server の最新の機能を使いこなしているとは言えません。そういう用途では World Wide Importers が参考になります。World Wide Importers も本エントリーの手順で利用できますので、興味のある方はお試しください。

続きを読む