Добрый день!
В процессе использования BLToolkit у меня возник вопрос, касающийся его использования в SQL CLR (MS SQL Server).
Собственно, что у меня имеется:
1. Трехзвенная архитектура (DB: MS SQL Server 2012 SE --- AppServer: WCF Services + BLToolkit --- Client: SL5)
2. Visual Studio Project с исходниками BLToolkit, который является общим для нескольких проектов в солюшене (Solution).
MS SQL Server 2012 SE была выбрана по причине того, что я использую SQL CLR, а 2008 R2 не поддерживает .NET Framework 4.0, только 3.5, проект BLToolkit же скомпилирован под версию фреймворка 4.0.
Что мне нужно
1. В новых проектах я хочу использовать SQL CLR для создания триггеров БД и хранимых процедур. Причем желательно использовать вместо текстовых запросов BLToolkit.
2. Было бы очень неплохо, если бы проект с исходниками BLToolkit остался неизменным или, в крайнем случае, содержал минимум изменений, которые бы никак не повлияли на другие проекты, уже написанные с его использованием.
В чем проблема.
В итоге на данный момент я добился того, чтобы осуществить задачу №1, но для этого мне пришлось удалить в проекте BLToolkit ссылки на System.Windows.Forms и System.Data.Services, и, соответственно, закомментировать классы, их использующие. Если в первом случае я уверен, что проблем возникнуть не должно, то вот со вторым такой уверенности нет. System.Data.Services не удается развернуть на SQL-сервере из-за проблемы с библиотекой System.IdetityModel (возможно не только, но пока я застопорился именно на ней). Проблема в том, что System.Data.Services нельзя развернуть без развертывания System.IdetityModel, которая, в свою очередь, в фреймворке 4.0 отказывается корректно работать в MS SQL Server 2012, что было установлено практически и подтверждено на разных форумах.
Изменять исходники BLToolkit под разные задачи, в том числе и в будущих проектах, не хотелось бы.
В чем, собственно, вопрос.
1. System.Data.Services используется только в классе BLToolkit.ServiceModel.DataService
public class DataService<T> : System.Data.Services.DataService<T>, IServiceProvider
where T : IDataContext
{
вы не могли ответить, что это за класс, для чего он нужен, что может повлечь за собой его удаление?
2. Возможно я копаю не в ту сторону и есть более простой способ использования BLToolkit в SQL CLR без его существенной переработки?