C#で動的にSQL文を作成できないでしょうか?(Update文)
Entityクラスのうち、指定のプロパティのみをupdateする
SQL文を動的に作りたいですが、何か良い方法はありませんでしょうか?
where文は外から指定する形でwhereの手前までを動的に作成したいです。
Entityの各プロパティに対して、UPDATE文の対象とするような
フラグを持たせればできますが、既存のEntityのプロパティは
変更せずにそのまま使いたいです。
カスタムAttribute等を付加することも検討しましたが、Attributeは
インスタンス生成後に変更はできないようなので、難しそうです。。
例:HogeクラスにA,B,Cプロティがあるとして、
Hoge hoge = new Hoge();
hoge.setB(b);
hoge.setC(c);
string sql = SqlUpdateQueryCreator.create(hoge);
みたいに呼んだら、sqlとしてupdate HOGE set B=b, C=c
を返すような
仕組みを作りたいです。この場合はAプロパティを何らかの形で
無視するようにしたいです。
なお、Entityクラスを関数に渡して、Entityのすべてのプロパティを
InsertするSQL文を動的に作成するのはリフレクションを使ってできました。
お知恵を拝借できれば幸いです。