ドメインベースに次の関数を設定しています。
public void SetProcessFlag<T>(bool flag)
{
string tableName = typeof(T).ToString().Replace("MyBase.Core.Domain.", "");
string sql = string.Concat("update ", tableName, " set ImportProcessed = '" , (flag?"1":"0"), "';");
Framework.FluentSessionManager.GetSession()
.CreateSQLQuery(sql)
.ExecuteUpdate();
}
「カタログ」のスキーマと「パーツ」のテーブルとのマッピングがあります。これには、Boolとしてマップされた列「ImportProcessed」が含まれています。
ここで、列「ImportProcesses」をtrueに設定する場合、次のように呼び出します。
new Parts().SetProcessFlag<Parts>(true);
これは問題なく機能します。レコードセットの宣言フォルダーがスキーマと同じ名前であると想定する必要はありません。
同じことをすることは可能ですか?:
Framework.FluentSessionManager.GetSession()
.CreateCriteria(typeof(T))
....
それとももっとエレガントな方法ですか?
前もって感謝します。