1

Я пытаюсь абстрагировать EF в проекте DAL моего решения. Я уже дошел до того, что EF известен только в этом проекте.EF Строка подключения без App.Config в стартовом проекте

Я создал новое приложение Console.Test, которое использует мой BLL, который использует мой DAL. Теперь для этого нового консольного приложения требуется файл App.Config, который содержит строку подключения EF. Следующим шагом было бы избавиться от этого файла App.Config, так как я хотел бы использовать мой BLL на нескольких платформах.

Итак, я создал частичный класс моего производного DbContext, чтобы добавить дополнительный конструктор, который принимает полную строку соединения. В моей DAL я также создал новый статический метод для получения ConnectionString:

public static string GetSqlConnectionString(string serverName, string databaseName) 
    { 
     SqlConnectionStringBuilder providerCs = new SqlConnectionStringBuilder(); 

     providerCs.DataSource = serverName; 
     providerCs.InitialCatalog = databaseName; 
     providerCs.IntegratedSecurity = true; 
     providerCs.UserID = "*****"; 
     providerCs.Password = "******"; 

     var csBuilder = new EntityConnectionStringBuilder(); 

     csBuilder.Provider = "System.Data.SqlClient"; 
     csBuilder.ProviderConnectionString = providerCs.ToString(); 

     csBuilder.Metadata = "res://Prodomus.DAL/DataObjects.Entities.Model.csdl|res://Prodomus.DAL/DataObjects.Entities.Model.ssdl|res://Prodomus.DAL/DataObjects.Entities.Model.msl"; 

     return csBuilder.ToString(); 
    } 

Теперь моя проблема заключается в том, что я постоянно получаю сообщение об ошибке с указанием: «Сбой основной поставщик открыть.». Я точно знаю, что учетные данные, которые я использовал, верны, это также относится к имени сервера, а также к имени базы данных. Я что-то пропустил? Любая помощь будет очень оценена.

Thnx заранее!

+1

Вы не можете смешивать интегрировнную безопасность и имя пользователя/пароля – ErikEJ

ответ

2

Вы не можете смешивать Комплексную безопасность и имя пользователя/пароль

+0

Thnx людей! Это было решением. Мне нужно быть более осторожным при копировании вставки. Мне жаль, что я не ответил раньше, вчера у меня был выходной, и меня не было дома. –

Смежные вопросы