[英]How to handle "No connection string named 'RestaurentEntities' could be found in the application config file" in WinForms
我希望你們都沒事。
我正在嘗試一個關於 WinForms 的項目。 我做了一個表單名稱Dashboard
和用戶控件名稱DashboardScreen
。 Dashboard
基本上會有很多用戶控件,如DashboardScreen
、 InventoryScreen
、 SettingsScreen
等。這些屏幕很小並且停靠在主父窗體Dashboard
因此當用戶單擊按鈕時,相應的用戶控件會使用DashboardScreen.BringToFront()
出現在前面
這些用戶控件正在實現Entity Framework V 6.4.0
用戶控件,當我不在這些控件上使用 Entity Framework 時,主儀表板表單工作正常。 每當我使用實體框架作為RestaurentEntities DB = new RestaurentEntities();
為了利用數據庫服務,主儀表板表單在設計模式下給出以下錯誤。
在應用程序配置文件中找不到名為“RestaurentEntities”的連接字符串。
第二個錯誤是
變量 'dashboardScreen' 要么未聲明,要么從未分配過。
給定的是我的配置文件。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings><add name="RestaurentEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=YASIR\SQLDEVENV;initial catalog=Restaurent;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
如果要在表單中拖放 UserControl 並且構造函數方法或 OnLoad 方法中的控件可以訪問 EntityFramework 並且 EntityFramework 訪問是由引用的項目創建的,則必須在代碼中包含以下內容:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!DesignMode)
{
//access to EntityFramework
}
}
將您的 connectionStrings 更改為以下內容:
<connectionStrings>
<add name="RestaurentEntities"
connectionString="data source=YASIR\SQLDEVENV;initial catalog=Restaurent;integrated
security=True;MultipleActiveResultSets=True;App=EntityFramework"
providerName="System.Data.SqlClient" />
</connectionStrings>
並確保
你的 Dbcontext 構造函數就像
public RestaurentEntities ()
: base("name=RestaurentEntities")
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.