【问题标题】:How do you instantiate an Entity Framework DBContext in a .Net Console Application?如何在 .Net 控制台应用程序中实例化实体框架 DBContext?
【发布时间】:2018-11-20 00:14:00
【问题描述】:

我在我的程序中声明一个像这样的DBContext 变量:

class Program
{
    static MyDataContext context;

    // ...
}

但我收到以下错误:

“System.Data.Entity.Internal.AppConfig”的类型初始化程序引发异常。

App.Config 中的我的连接字符串与DBContext 变量同名,并且在网络应用程序中工作。有没有其他人看过这个?

如果我像这样在一行中实例化所有内容:

class Program
{
    static MyDataContext context = new MyDataContext();

    // ...
}

而不是在主目录中:

context = MyDataContext();

我收到此错误:

“NLP.Program”的类型初始化程序引发异常。

【问题讨论】:

  • DbContext 是静态的有什么原因吗?
  • MyDataContext 是您自己的自定义类还是来自 EF?因为如果你没有拼写错误,它似乎是一个函数而不是一个类 (context = MyDataContext();)
  • 检查 InnerException - 类型初始化程序异常通常意味着静态构造函数中的错误。根据该错误,可能缺少 app.config 值。

标签: c# .net entity-framework


【解决方案1】:

避免以这种方式使用上下文,而更愿意遵守using 的一次性资源:

using(MyDataContext context = new MyDataContext(...))
{
    // ...
}

这并不能解决您的问题,但它是更好的代码的第一步。

编辑:删除了完全错误的答案。没有答案总比一个错误的答案好......

【讨论】:

  • 但是不回答这个问题。
猜你喜欢
  • 2019-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 2013-03-07
  • 2023-02-10
  • 1970-01-01
  • 2015-03-02
相关资源
最近更新 更多