0

我有以下代码行作为测试用户控件。构建项目后,我将此用户控件拖到窗体上,我收到一个错误对话框,大意是 EF 找不到上下文的连接字符串。然而,当我在表单中使用相同的变量时,一切都很好。用户控件似乎使用与通常的 app.config 不同的上下文来查找连接字符串。

Public Class InvoiceWorkOrderSearch
    Private _dataHelper As WorkOrderData = New WorkOrderData()
End Class
4

1 回答 1

1

在设计期间?

如果控件处于运行时模式,您可以避免仅实例化对象。

用于检查设计时间 ( ) 的内置属性Me.DesignMode很差,因为它只告诉您当前是否正在设计控件本身。如果您将用户控件放在表单上,​​它会返回 false。

您可以使用此代码检查设计时间:http: //dotnet-snippets.de/dns/designmode-workaround-windows-forms-SID299.aspx

Public Class InvoiceWorkOrderSearch
    Private _dataHelper As WorkOrderData

    Public Sub New()
        If IsDesignMode(me) = False Then
            _dataHelper = New WorkOrderData()
        End If
    End Sub()
End Class
于 2012-09-26T13:49:00.260 回答