[英]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.