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