LINQ с существующими базами данных и неизвестной схемой - PullRequest
1 голос
/ 20 октября 2010

Я работаю над тяжелым проектом базы данных, где базы данных Microsoft SQL очень зрелые (16 или более лет), а старый продукт использует VB6 и ADO для генерации sql, который взаимодействует с базой данных. Мне было поручено перенести / переписать древнюю версию с новой версией .NET.

Я бы хотел использовать LINQ-to- * для обеспечения простоты обслуживания, но, пытаясь последние несколько недель, я чувствую, что LINQ-to-SQL недостаточно гибок, LINQ-to-Entities слишком много накладных расходов и LINQ-to-Datasets не имеет смысла, так как я был бы счастлив использовать Ado.Net.

Программа работает с двумя базами данных одновременно: одна - это база данных с очень непротиворечивой схемой, содержащей метаданные, а другая - база данных, которая имеет изменяющуюся схему, тесно связана с метабазой и определяет, какую информацию из мета-базы данных, в которой вы заинтересованы в любой момент времени. Кроме того, мне нужна информация, не относящаяся к LINQ, из обеих баз данных (таких как системные хранимые процедуры и системные таблицы).

Есть ли способ использовать LINQ здесь с умом? Мне бы понравилась статическая типизация, но если у меня ее нет, я не хочу втиснуть свое квадратное приложение в круглую структуру.

Ответы [ 2 ]

1 голос
/ 20 октября 2010

Просто к вашему сведению, вы можете получить доступ к системным таблицам (и sys сохраненным процессам тоже?), Используя LINQ.Вот как:

  • Создайте подключение к нужному серверу.
  • Щелкните правой кнопкой мыши сервер и выберите «Изменить представление»> «Тип объекта».
  • Теперь вам нужносм. Системные таблицы и Пользовательские таблицы.Там вы должны увидеть sysjobs и легко перетащить его на поверхность .dbml.

Выше был украден из этого поста.

0 голосов
/ 27 октября 2010

Лучшим ответом, похоже, будет полное использование ADO.NET. У меня есть возможность использовать Linq-to-Sql над метабазой и ADO.NET для любого другого доступа к базе данных, но из-за этого код может показаться мне слишком непоследовательным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...