2015-05-31 3 views
2

Я создаю синхронизацию для своей системы. Теперь мне нужно вставить всю выполненную хранимую процедуру в таблицу. Моим решением было добавить статический класс и запустить Dapper внутри него. Теоретически статические классы/функции можно использовать, когда они не изменяют какое-либо состояние объекта, которое имеет место. Я думал, что буду очень осторожен и спрошу вас, ребята, о том, что вы думаете. Может ли это вызвать какие-либо проблемы на линии?Использование Dapper внутри статического класса

public static class Model 
{    
    public static int ExecuteStoreProcedure(string name, string xml,bool sync=true) 
    { 
     using (SqlConnection con = new SqlConnection(Strings.ConnectionString)) 
     { 
      //pre 

      var result = con.Query<int>(name, 
       new { xml = xml }, 
      commandType: CommandType.StoredProcedure).FirstOrDefault(); 

      //post 
      // insert into new table goes here 
     } 
    } 
} 

ответ

1

Вы не получаете доступ к общему состоянию и не полагаетесь на статическое соединение, поэтому обязательно - это сработает. Существует множество способов реализации доступа к данным с различными компромиссами, но это должно работать нормально. Не попадайте в «ловушку Java», предполагая, что вам нужно 16 уровней абстракции (включая ISomething, AbstractSomething, два Somethings, AbstractSomethingFactory и SomethingFactoryFactory с 200 строками конфигурации на неясном языке разметки), чтобы сделать что-то простое.

+0

Это, как говорится, мы не знаем, будет ли/когда это поведение будет иметь больше смысла в службе, которая может иметь зависимости. Таким образом, это зависит от того, какое приложение создает OP. – MikeSW

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