当我在我的呼吸道代码上运行测试时,表格被删除并创建,并使用
添加新的数据用于测试 new SchemaExport(_configuration).Execute(false, true, false);
然而,它强制执行参照完整性,在生产中这将没有问题,但在测试中我要求不要这样做。
使用上面的代码创建表时,有没有办法禁用它们?
答案 0 :(得分: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"
}