我有一个vb.net windows窗体应用程序,其中我正在使用Windows窗体的继承。我有一个基本表单,提供了一些将与所有继承表单一起使用的基本布局和方法。这包括在基本形式构造函数中初始化实体框架上下文。
Dim dataContext As New CCEntities()
然后,子表单可以使用此上下文。应用程序编译并运行时没有错误,但是当我尝试在设计器中查看子窗体时,会显示一条错误,指出“在配置中找不到指定的命名连接,不打算用于EntitlyClient提供程序,或无效。“如果我将该初始化行移动到子表单构造函数中,设计器将显示没有错误。
为了解决这个问题,我在基本表单构造函数的初始化时指定了连接字符串:
Dim dataContext As New CCEntities(System.Configuration.ConfigurationManager.ConnectionStrings.Item("CCEntities").ConnectionString)
在添加对连接字符串的引用后,子表单现在显示“对象引用未设置为对象的实例。”
但是,如果我将实体连接字符串硬编码到该初始化行中,则设计人员可以正常工作。
基本表单似乎无法访问app.config文件。如何让基本表单正确访问app.config文件并使设计人员正常工作?
答案 0 :(得分:1)
当您处于“设计时”时,您需要做的是阻止代码运行。
if(System.ComponentModel.LicenseManager.UsageMode != System.ComponentModel.LicenseUsageMode.Designtime)
{
//do connection stuff here
}