从 EF 数据库优先方法更改生成的上下文是不好的做法吗?



我使用的数据库模型是在 .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)
{ }
}
}

相关内容

  • 没有找到相关文章

最新更新