Подтвердить что ты не робот

Ключевое слово не поддерживается: 'server'

Я пытаюсь изменить строку подключения для загрузки моего веб-сайта на сервер.
Я не очень разбираюсь в этом. Я получил это исключение: ключевое слово не поддерживается: "server".
Вот моя строка подключения:

<add name="AlBayanEntities" connectionString="Server=xx.xx.xxx.xxx,xxxx;Database=AlBayan;Uid=bayan;Password=xxxxx;" providerName="System.Data.EntityClient" />

Я попытался вставить эту строку в свою старую строку подключения, которая работает очень хорошо локально, но она не подходит: S

4b9b3361

Ответ 1

Для Entity Framework (сначала для базы данных или для модели, когда у вас есть файл модели физического EDMX), вам нужно использовать специальный тип строки подключения, который сильно отличается от прямых строк соединения ADO.NET, о которых все говорили до сих пор...

Строка подключения должна выглядеть примерно так:

<add name="testEntities" 
     connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(local);initial catalog=test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

Внутри этой строки подключения вы найдете атрибут provider connection string=, который является в основном вашей строкой соединения ADO.NET:

provider connection string=&quot;data source=(local);initial catalog=test;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 

Итак, здесь вам нужно изменить имя своего сервера и, возможно, другие настройки.

  • data source=.... означает ваш сервер (вы также можете использовать server=.....)
  • initial catalog=..... означает вашу базу данных (вы также можете использовать database=....)

Ответ 2

В MVC5 с использованием EntityFramework 6.xx и Code First Approach

У меня была та же проблема, и я решил ее, изменив свой providerName

от

 providerName="System.Data.EntityClient"

в

providerName="System.Data.SqlClient"

Ответ 3

Я всегда либо запускаю мастер подключения для создания строки, либо использую connectionstrings.com.

Предполагая SQL Server:

Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

Сравнивая с вашим, это совсем другое.

Server=xx.xx.xxx.xxx,xxxx;Database=AlBayan;Uid=bayan;Password=xxxxx;

Ответ 4

Попробуйте это

<add name="AlBayanEntities" connectionString="Data Source=xx.xx.xxx.xxx,xxxx;Initial Catalog=AlBayan;User Id=bayan;Password=1abcd;" providerName="System.Data.EntityClient" />

Ответ 5

Это исключение вызывается на лазурных сайтах, когда вы храните строку соединения в самой службе приложений (на клике "Параметры приложения" ).

Если строка подключения является строкой соединения Entity Framework, кавычки будут закодированы как &quot; по умолчанию в вашем файле web.config.

Вам нужно изменить их обратно на фактические кавычки, чтобы строка соединения могла быть правильно проанализирована.

Ответ 6

То же самое случилось со мной при использовании Rider IDE для проекта .net core 2.2. Поскольку Rider автоматически настраивает Sqlite в Startup.cs методом "ConfigureServices".

Изменяя

services.AddDbContext<ApplicationDbContext>(options =>
    options.**UseSqlite**(
        Configuration.GetConnectionString("DefaultConnection")));

в

services.AddDbContext<ApplicationDbContext>(options =>
    options.**UseSqlServer**(
        Configuration.GetConnectionString("DefaultConnection")));

проблема была решена. Конечно, сначала вы должны установить пакеты nuget для EF SQLServer и добавить строку подключения в appsettings.json.

Ответ 7

EntityConnectionStringBuilder bb = new EntityConnectionStringBuilder();
bb.Metadata = "res://*/dao.bdmi.csdl|res://*/dao.bdmi.ssdl|res://*/dao.bdmi.msl";

//same as below client tobe used
bb.Provider = "MySql.Data.MySqlClient";
MySql.Data.MySqlClient.MySqlConnectionStringBuilder mbb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
mbb.Server = "";
mbb.Database = "";
mbb.UserID = "";
mbb.Password = "";
mbb.PersistSecurityInfo = true;


//use providerconnectionstring insted of connectionstring
bb.ProviderConnectionString = mbb.ToString();
return bb.ToString();

Таким образом, вы можете изменить ConnectionString как хотите.

Ответ 8

В моем случае я обнаружил, что в моем проекте установлен пакет nuget EFSQLLite, который, похоже, не распознает ключевое слово Server=. Я удалил этот nuget и установил полный EFSQLSERVER, и он работал нормально