呼吸器コードでテストを実行すると、テーブルが削除および作成され、を使用したテスト用に新しいデータが追加されます。
new SchemaExport(_configuration).Execute(false, true, false);
ただし、これは参照整合性を強制します。本番環境ではこれで問題ありませんが、テストではこれをオンにしないようにする必要があります。
上記のコードでテーブルを作成するときにそれらを無効にする方法はありますか?
呼吸器コードでテストを実行すると、テーブルが削除および作成され、を使用したテスト用に新しいデータが追加されます。
new SchemaExport(_configuration).Execute(false, true, false);
ただし、これは参照整合性を強制します。本番環境ではこれで問題ありませんが、テストではこれをオンにしないようにする必要があります。
上記のコードでテーブルを作成するときにそれらを無効にする方法はありますか?
FluentNHibernate を使用すると、この規則をテスト専用に追加するだけです
public class NoForeignKeys : IReferenceConvention, IHasManyConvention
{
public void Apply(IManyToOneInstance instance)
{
instance.ForeignKey("none");
}
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Key.ForeignKey("none");
}
}
プレーンな NHibernate を使用すると、マップされたすべてのクラス プロパティを繰り返し処理し、そこで変更する必要があります。
foreach (var prop in config.ClassMappings.SelectMany(c => c.PropertyClosureIterator).Where(p => p.IsEntityRelation || <is hasmany>))
{
// set foreignkey name to "none"
}