Re[6]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 16.12.03 14:52
Оценка:
Здравствуйте, Walker, Вы писали:

W>Не совсем я понял идею... Уже существующие методы при любом раскладе будут работать только с одной command. Да и еще же надо параметры указать для каждой command... И чем это отличается от передачи commands как параметров в функцию? Ведь если я вызываю несколько разных методов Execute... то я скорее всего захочу для каждого иметь свои commands и parameters к ним, так что выставление commands отдельно для инстанса DbManager вряд ли даст много пользы. Что-то я не понял, можешь подробнее?


Проблема вот в чём. Например, мы хотим иметь метод возвращающий датасет и принимающий его в качестве параметра. Теперь мы хотим иметь возможность задавть тип команды либо опускать его и для этих двух вариантов ещё задавать парметры или опускать их. Итого 2 варианта передачи датасета и 4 для параметров. В результате нужно написать 8 перекрытий. Если это разделить на 2 метода, то писать нужно 6 методов. Но это для одной команды. А у нас их три. Теперь посчитай сколько у нас получается комбинаций.

Если же вынести задание команд в отдельные методы, то дальше комбинируй сам как хочешь.

using (DbManager db = new DbManager())
{
    return db
        .InsertCommand("INSERT INTO...", db.CreateParameters(entity))
        .UpdateCommand(CommandType.StoredProcedure, "UpdateItem")
        .DeleteSp("DeleteItem", db.Parameter("@ID"))
        .UpdateDataSet();
}


Придётся конечно запоминать сформированные команды в DbManager, но это уже мелочи.

W>И кстати, я уже наваял наследника для выполнения апдейтов датасетов, но я это делал для версии 1.1 (изменения для класса DbManager минимальны), сейчас надо только слить для версии 1.2. Сегодня-завтра сделаю — посмотришь мой подход.


Давай.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.