我有两个 C# 项目,Model 和 ModelTest。模型由 ActiveRecord 对象(围绕 Hibernate 的包装器)组成。在 ModelTest 我创建了一个简单的单元测试:
[TestClass]
public class UnitTest1
{
[TestInitialize]
public void Init()
{
Model.Init();
Model.CreateSchema();
}
[TestMethod]
public void TestMethod1()
{
}
}
Model.Init() 使用 ActiveRecord 注册所有类型的装配模型。Model.CreateSchema() 包装了 ActiveRecordStarter.CreateSchema(),它调用 NHibernate 的 CreateSchema()。
如果我运行单元测试,此代码工作正常,但如果我“调试”单元测试,它会失败。在调试模式下,CreateSchema() 发生异常:
NpgsqlException: 'ERROR: 42P01: table "user" does not exist'
在 SQL 调用“drop table user cascade”期间似乎引发了异常,如果在运行测试之前数据库为空,则显然会失败。我假设总是在创建新表之前发送 drop。
关于删除查询的结果,Npgsql 在调试模式下的行为是否不同?