ahmed_sa Ответов: 1

Что лучше-статическое соединение или публичное соединение ?


Я работаю дальше asp.net ядро 2.2 я использую статическое SQL соединение я уже лечу с несколькими базами данных

во время выполнения и существуют на нескольких серверах, поэтому мне нужно знать, что лучше всего подходит для моего случая статического

подключение или публичное подключение .
когда я использую соединение я создаю его статическим я использую его как показано ниже :

dbConnection = (SqlConnection)InitializeConnection();


предположим, теперь мне нужно изменить соединение во время выполнения, чтобы получить данные с другого сервера, имеющего другую базу данных ?
Итак, статическая связь хороша или нет ?

Что я уже пробовал:

автозагрузки.в CS
 public void ConfigureServices(IServiceCollection services)
        {
            
          
            services.AddMvc();
       
            GlobalVariables.con = Microsoft
     .Extensions
     .Configuration
     .ConfigurationExtensions
     .GetConnectionString(this.Configuration, "DashBoardSQLConnection");
}


static IDbConnection InitializeConnection()
    {
        switch (_Provider)
        {
            case Providers.SQLServer:
               
                return new SqlConnection(GlobalVariables.con);
             


        }
        return new SqlConnection();
    }

Maciej Los

Лучше всего - в каком аспекте?

1 Ответов

Рейтинг:
0

OriginalGriff

Это не статическое соединение - со статическим соединением есть только одно на приложение, и вы этого не хотите.

То, что вы должны сделать, это создать свое соединение, открыть его, использовать его и избавиться от него, когда вы закончите - самый простой способ сделать это с помощью блока using:

using (SqlConnection con = new SqlConnection(strConnect)
   {
   con.Open();
   ... use it here ...
   }
Затем система автоматически закроет и удалит объект подключения, когда он больше не будет доступен. Вы также должны делать это для SqlCommands, SqlDataReaders, SqlDataAdapters и так далее.

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

Если вам нужно соединение с другим сервером / БД, вы просто создаете это соединение, когда вам нужно внутри другого блока using, и позволяете системе обрабатывать его.


ahmed_sa

Итак, мой вопрос заключается в том, что использование соединения, как я использовал, является правильным или что ?

OriginalGriff

Прочтите, что я сказал...

ahmed_sa

Я читаю его, но мне нужно спросить, является ли моя работа неправильной, и если я изменю свое соединение выше, чтобы получить запрос с другого сервера, какую проблему я решу
пожалуйста, помогите мне

ahmed_sa

Я понял что вы имеете в виду Вы имеете в виду тогда когда я делаю return new SQL connection это означает
это не статично потому что я беру новый объект мой вопрос связь с этим способом хороша или плоха

Richard MacCutchan

Хороший способ-сделать то, что сказал вам OriginalGriff. Все остальные способы плохи.