Что делать? Не удалось найти строку подключения с именем «RestaurentEntities» в файле конфигурации приложения в WinForms.

Надеюсь, у вас все будет хорошо.

Я пробую проект на WinForms. Я сделал имя формы Dashboard и имя пользовательского элемента управления DashboardScreen. Dashboard в основном будет иметь много пользовательских элементов управления, таких как DashboardScreen, InventoryScreen, SettingsScreen и т. д. Эти экраны маленькие и закрепляются в основной родительской форме Dashboard, поэтому, когда пользователь нажимает кнопку, соответствующий пользовательский элемент управления появляется на переднем плане, используя DashboardScreen.BringToFront()

Эти пользовательские элементы управления реализуют Entity Framework V 6.4.0 пользовательские элементы управления, и основная форма панели мониторинга работает нормально, когда я не использую Entity Framework для этих элементов управления. Всякий раз, когда я использую 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=&quot;data source=YASIR\SQLDEVENV;initial catalog=Restaurent;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

person Yasir Shahzad    schedule 19.12.2019    source источник
comment
comment
Скорее всего, вам нужно будет добавить connectionStrings в файл .config проекта, который фактически вызывает новый объект RestaurentEntities.   -  person Jawad    schedule 20.12.2019


Ответы (2)


если вы хотите перетащить UserControl в форму, а элемент управления в методе конструктора или методе OnLoad имеет доступ к EntityFramework, а доступ к EntityFramework создается ссылочным проектом, вы должны включить в свой код что-то вроде:

 protected override void OnLoad(EventArgs e)
 {
        base.OnLoad(e);
        if (!DesignMode)
        {
            //access to EntityFramework
        }
 }
person Panayiotis Lavidas    schedule 24.05.2021

Измените ваши 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")
    {


    }
person Asım Gündüz    schedule 20.12.2019
comment
Это не работает. Выдает ошибку Entity Framework: контекст используется в режиме Code First с кодом, сгенерированным из файла EDMX. - person Yasir Shahzad; 28.12.2019