我使用的数据库模型是在 .edmx 文件中生成的,使用实体框架数据库优先方法。 现在,我想使用 InMemory 数据库测试数据库层。但是我使用 Effort 发现的方式让我改变了在 .edmx 文件中生成的上下文。
在我看来,更改生成的上下文与数据库优先的方法相矛盾。
标准生成的上下文是:
public DbContext()
: base("name=DbConnectionstring")
{ }
从 App.Config 文件中获取连接字符串,我没有找到为 App.Config 文件创建 InMemory 连接字符串的方法。
工作所需的上下文是:
public DbContext(DbConnection connection)
: base(connection, false)
{ }
到目前为止,我所知道的所有实体框架示例都与 DbOptions/DbOptionsBuilders 一起使用。 这些选项是否更适合依赖注入?
也许测试由数据库优先方法开发的应用程序是不同的,并且与 InMemory 数据库不常见。那么,任何人都可以通过消息来源对此提供一些适当的建议吗?
您可以简单地创建另一个文件.cs该文件将另一个构造函数添加到生成的上下文中,因为生成的代码使用partial class
滞后功能。
只是创造。
DbContext.Effort.cs
namespace blah.blah.blah
{
public partial class MyContext
{
public MyContext(DbConnection connection)
: base(connection, false)
{ }
}
}