0

呼吸器コードでテストを実行すると、テーブルが削除および作成され、を使用したテスト用に新しいデータが追加されます。

new SchemaExport(_configuration).Execute(false, true, false);

ただし、これは参照整合性を強制します。本番環境ではこれで問題ありませんが、テストではこれをオンにしないようにする必要があります。

上記のコードでテーブルを作成するときにそれらを無効にする方法はありますか?

4

1 に答える 1

1

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"
}
于 2013-02-15T07:32:08.220 に答える