NHibernate - テーブル名での強制エスケープ
-
21-08-2019 - |
質問
これ (NHibernate.Criterion.IdentifierEqExpression) をオンラインで使用する方法の良い例はありますか?何も見つかりませんでした。コンストラクターに何を渡すべきか少し混乱しています。
私は1のint32を渡し、テストは基本的に「id = 1」タイプのクエリを行うべきであり、代わりに「where id =?」で爆発すると考え続けます。そして、位置パラメーターについての何か。それがコンストラクターに渡されるべきものではない場合...とは?
本当の問題
SQL 出力を見ると、テーブルの名前が User であり、NHibernate がテーブルを [User] のように囲んでいないことを除いて、正しく動作しているようです。これを強制する方法はありますか?
解決
テーブル名を ` として指定しますUser
`。例えば:
(HBM)
<class name="User" table="`User`">
(Fluent)
public UserMap()
{
WithTable("`User`");
...
(Mapping By Code)
public UserMap()
{
Table("`User`");
...
同様に、列についても次のようなことを行う必要があります。
Map(x => x.IsCurrent, "`Current`");
ああ、レガシー DB を操作できる喜び。
所属していません StackOverflow