Если вы не решительно настроены заняться кодированием :-), получив LINQ to MySql, Oracle и Postgress и изменив его, вы, вероятно, также сэкономите вам много работы.Помните, что LINQ to SQL по-прежнему использует то же соединение ADO.NET.
Имейте в виду, что LINQ to Entities не совпадает с LINQ to SQL, и даже если вы работаете с этой библиотекой IBM, вам сначала нужно проверить,вам будет разрешено использовать его против существующей БД без особых проверок (он может легко отключиться и попытаться изменить существующую БД - проверьте этот поток, если вы хотите вникнуть в этот аспект: http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/f3a5b27a-5b73-476a-8c38-1eaedc8f197c).
Вы также можете перейти к Бета-поток IBM Entity Framework (начните с конца, где некоторые люди заявляли о результатах работы).
Важно не пытаться получить абсолютно все, что MS SQLполучил - вам просто нужны классы представления таблиц, и вы готовы пойти на первый раунд.
Еще одна вещь, которую вы можете попробовать, - это открыть обычное соединение ADO.NET с DB2 (или принудительно установить ODBC, если выяснится, чтоне-ODBC-соединение слишком шпионское и чувствительное) к DB2, и попробуйте действовать так, как если бы это был SQL Server. Если окажется, что SqlMetal согласен работать с этим соединением, которое вы в значительной степени сделали - оно автоматически сгенерирует классы представления таблиц для вас.
Если оно будет блокироваться, вам также потребуется MS SQL Server, по крайней мере, для целей разработки.Для сценария запуска из нескольких таблиц из DB2 создайте затем в SQL Server, а затем запустите SqlMetal и изучите исходный код.Вы увидите, что он создает симпатичные классы кланов для представления таблиц и просто надевает на них здоровенные, но прямые атрибуты - то есть их легко копировать и вставлять или даже создавать с помощью хорошего сценария.Как только вы увидите, как выглядит маленький автоматически сгенерированный файл, вы также увидите, что вы можете прикрепить больше кода к предоставленным хукам или удалить какой-либо существующий код.Проверьте, что LINQ to MySql и т. Д. еще раз.
Самому LINQ просто нужны классы представления таблиц, так что вы будете достаточно свободны, чтобы сделать свой собственный производный System.Data.Linq.DataContext почти для вашегожелания сердца, и я полагаю, что схема в DB2 почти никогда не меняется, поэтому вам не придется менять ее слишком часто.LINQ - это довольно открытая система в целом (о чем свидетельствуют многие LINQ для чего-то libs), что означает, что если модификация производного DataContext недостаточна, вы также можете перенять все выражения LINQ.
Однаждыу вас есть подтверждение концепции с несколькими таблицами, вам может понадобиться написать сценарий perl или python (или powershell или C #), чтобы выполнить небольшую замену регулярных выражений, если сценарии создания таблиц DB2 не работают на SQL Server без изменений (всегда естьнесколько синтаксических отклонений) и вы действительно должны идти по самому неудачному маршруту.