如何解决“在 App.Config 中找不到连接字符串‘RgaAppDBEntities’”阻止我添加 WinForm 用户控件
我正在使用实体框架 6 和 DevExpress UI 组件创建一个 WinForms 应用程序。我已经成功开发了这个应用程序大约 2 个月,今天我需要向主窗口添加一个新的用户控件。令我惊讶的是,主窗口的设计者显示了一个错误屏幕,但有几个例外。我点击了“忽略并继续”(这可能是我问题的根源)。
所以这里是问题:单击忽略并继续后,显然设计者删除了我的两个自定义用户控件(这是迄今为止实现实体框架的两个控件)。当我尝试将用户控件添加回设计器时, an error pops up 表示无法创建组件,并且无法在应用程序配置文件中找到连接字符串。
我已确定无法添加用户控件的原因是导致问题的两个用户控件创建了一个“RgaAppDBEntities”实例,这是我正在使用的数据库模型。
我的数据模型在一个单独的类库项目中。类库和WinForms项目中的App.Config文件都有:
<connectionStrings>
<add name="RgaAppDBEntities" connectionString="sensitive connection string information generated from database first model" providerName="System.Data.EntityClient" />
</connectionStrings>
Db Context 类构造函数如下所示:
public RgaAppDBEntities()
: base("name=RgaAppDBEntities")
{
}
去掉 "name=" 会导致 UnintentionalCodeFirstException(),这告诉我由于某种原因,WinForms 项目实际上无法在配置文件中找到名为 RgaAppDBEntities 的连接字符串,我没有想法。
最后,我彻底摆脱了数据模型,重新生成了整个模型,并重新实现了我需要的一切,但仍然无法在 app.config 文件中找到连接字符串。
此问题的原因可能是什么,我该如何解决?
解决方案
GertArnold 的建议是正确的:当您在设计时尝试让 EntityFramework 读取 app.config 时,它会抱怨并且不允许您通过异常。
在我的例子中,我在每个控件的视图模型的构造函数中初始化了数据库上下文,这当然是在运行时初始化的。作为一种解决方法,我刚刚创建了一个方法来初始化只能在运行时调用的数据库上下文。很有魅力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。