1

我正在使用 Effort ( https://effort.codeplex.com/ ),它是一个“ADO.NET 提供程序,它在轻量级进程内主内存数据库而不是传统的外部数据库上执行所有数据操作”以及 Nmemory .

不幸的是,如果我努力执行我的单元测试,我的模型的 count = 0 的所有虚拟集合属性都是空的。

让我给你一个调试器的例子:

这是我的模型对象在单元测试中使用 Effort 加载后的样子: 具有 Effort 属性的模型对象为空 这是在没有 Effort 的实际应用程序之外的样子: 实际应用程序中的模型对象-属性不为空

这就是我在单元测试中使用 Effort 初始化“数据库连接”的方式:

DbConnection connection = Effort.DbConnectionFactory.CreateTransient();
unitOfWork = new SqlUnitOfWork(connection);

在上面的代码中调用了我的 SqlUnitOfWork 构造函数:

public SqlUnitOfWork(DbConnection connection)
{
    this.SetConnectionString();
    this.Context = new SqlContext(connection);
}

上面代码中调用了我的 SqlContext 构造函数:

public SqlContext(DbConnection connection) : base(connection, true)
{
    this.Configuration.LazyLoadingEnabled = true;
}

这是测试运行时我的 DbContextConfiguration 的样子:

数据库上下文配置

因此启用了延迟加载。但不能正常工作。

4

0 回答 0