C# 模拟DbContext条目
我正在测试一个包含以下代码的函数:C# 模拟DbContext条目,c#,entity-framework,testing,C#,Entity Framework,Testing,我正在测试一个包含以下代码的函数: void FunctionToTest() { if (context.Entry(entity).State == EntityState.Detached) { // [...] } // [...] } 出于这个原因,我创建了自己的测试上下文,该上下文运行良好,但我无法模拟DbEntityEntry条目(tenty实体),因为DbEntityEntry类有一个需要内部类的构造函数 有什么
void FunctionToTest() {
if (context.Entry(entity).State == EntityState.Detached)
{
// [...]
}
// [...]
}
出于这个原因,我创建了自己的测试上下文,该上下文运行良好,但我无法模拟DbEntityEntry条目(tenty实体)
,因为DbEntityEntry
类有一个需要内部类的构造函数
有什么解决办法吗?您可以使用。通过NuGet下载,将此代码添加到app.config
<system.data>
<DbProviderFactories>
<add name="Effort.Provider" invariant="Effort.Provider" description="Effort.Provider" type="Effort.Provider.EffortProviderFactory,Effort" />
</DbProviderFactories>
</system.data><entityFramework>
<providers>
<provider invariantName="Effort.Provider" type="Effort.Provider.EffortProviderServices, Effort" />
</providers>
</entityFramework>
瞧,你有一个用于测试目的的假数据库你使用的是什么版本的EF?如果您使用EF Core,您可以使用InMemoryDatabaseProvider。是否有其他解决方案而不安装其他软件包?
EffortProviderConfiguration.RegisterProvider();
var connection = DbConnectionFactory.CreateTransient();
var model = new ApplicationDbContext(connection);
model.Database.CreateIfNotExists();