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"
}