Fluent NHibernateのマッピングを継承しました。これらのマッピングは現在プロジェクト内ですべて動作しています(つまり、アプリケーションが使用していて動作します)。しかし、実行されるSQL生成されたスクリプトは、いくつかの無効なコードを持ってい流暢なNHibernateのマッピングが無効になるCreateSchema SQL
new SchemaExport(Container.Resolve<Configuration>()).Create(true, true);
を使用して、スキーマを生成するために - 古いものと新しいもの - 今、私はいくつかの新しいマッピングのための統合テストを構築するため、それらのすべてを使用しようとしています。問題のほとんどは、これら2例1のようにラインに由来するようだ:さ起こり
// x.Map is string
Map(x => x.Map).Column("Karta").Not.Nullable().Default("False");
// x.Active is bool
Map(x => x.Active).Column("Aktiv").Not.Nullable().Default("True");
何、このテーブルを作成する声明の中で、上記のマッピングに対応する行は次のようになります(彼らがしています実際には異なるタイプの、および異なるテーブルで):
Karta NVARCHAR(255) default False not null,
Aktiv BIT default True not null,
(明らかに)その名前の変数が存在しないのでFalse
は、動作しない、とブール値は、SQL Server内に存在しません。
どうすれば解決できますか?
マッピングを変更したくないのですが、それらを使用し、それに依存する大規模なアプリケーションがあります。私は分かりません(そして、この瞬間を知る必要はありません)私が言う、デフォルトの仕様を削除すると、バグが導入されます。もし私が"False"
と"True"
を動作させるものに変更できれば、それはまったく問題ありません。他のどこかの動作を変更しないことが非常に明白である限り。