0
当我跑我的呼吸代码测试表被丢弃,创建新的数据添加使用的SchemaExport和关闭参照完整性约束
new SchemaExport(_configuration).Execute(false, true, false);
测试然而它被实施参照完整性,在生产这将是罚款,但在测试中,我要求这不会。
当用上面的代码创建表时,有什么办法可以禁用它们吗?
当我跑我的呼吸代码测试表被丢弃,创建新的数据添加使用的SchemaExport和关闭参照完整性约束
new SchemaExport(_configuration).Execute(false, true, false);
测试然而它被实施参照完整性,在生产这将是罚款,但在测试中,我要求这不会。
当用上面的代码创建表时,有什么办法可以禁用它们吗?
使用FluentNHibernate是刚刚加入这个约定使用普通NHibernate的测试只
public class NoForeignKeys : IReferenceConvention, IHasManyConvention
{
public void Apply(IManyToOneInstance instance)
{
instance.ForeignKey("none");
}
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Key.ForeignKey("none");
}
}
你需要通过所有映射类的属性进行迭代,并改变它。
foreach (var prop in config.ClassMappings.SelectMany(c => c.PropertyClosureIterator).Where(p => p.IsEntityRelation || <is hasmany>))
{
// set foreignkey name to "none"
}