Рад, что вы откликнулись
Если Вам интересно, то вот несколько проблем с которыми я столкнулся при использовании SMO в разработке
сравнивателя схем БД:
1. невозможность унаследовать от классов SMO, например Table, Column и т.п. (об этом я уже писал)
2. как следствие: невозможно использовать protected методы, например
protected override void ScriptCreate(StringCollection queries, ScriptingOptions so);
и других подобных методов.
невозможно добавлять функциональность сравнения объектов и преобразования объектов одного в другой
3. неудобный и очень медленный объект Scripter. Не могу понять почему он настолько медленный
дизассемблировав (только для сравнения скорости работы) алгоритмы скриптования (таблицы и столбца)
из SMO получил несравненно более высокую скорость, чем при использовании Scripter
4. как следствие: приходится писать свои методы скриптования, хотя, если бы можно было использовать [1] и [2], то
вопрос отпал бы сам собой
5. возможно я не совсем разобрался, но я не смог соскриптовать отдельный столбец в DDL-инструкцию.
Конечно, возможно это всё и специфично для моего проекта, но, опять таки если бы не [1] и [2], то пришлось бы
гораздо меньше писать кода, а SMO, как раз и делается для того чтобы сокращать писанину
Пока всё

Спасибо за внимание
С уважением, Константин Савельев
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение