Объектная модель LINQ DataContext, может ли она использоваться для управления изменяющейся структурой данных - PullRequest
0 голосов
/ 10 ноября 2011

В настоящее время я работаю над проектом, в котором мы переписываем программное обеспечение, изначально написанное на Visual DataFlex, и меняем его на использование SQL и переписываем его в клиентскую программу C # и веб-сайт C # / ASP.Net.Текущая база данных для этого действительно ужасна и только что добавила столбцы к символам таблицы или канала (|), застрявшим между значениями ячеек, когда им нужно было добавить новые поля.Таким образом, у нас есть такие вещи, как таблица персоны с более чем 200 столбцами, потому что такие вещи, как 6 лотов (addressline1, addressline2, city, city, country, postcode) для хранения разных адресов (home / postal / accountPostal / ect ...).

То, что мы хотели бы сделать, это реструктурировать базу данных, но мы также должны продолжать использовать текущую структуру, чтобы оригинальное программное обеспечение все еще могло работать.Я хотел бы знать, можно ли с помощью Linq написать класс объектной модели DataContext, который мог бы интерпретировать структуры базы данных, чтобы мы могли продолжать использовать текущую структуру базы данных, но для кода это могло бы выглядеть так, как будто мыгде с использованием новой структуры, а затем после переписывания различных модулей программного обеспечения мы можем изменить объектную модель для использования правильной структуры данных ???

1 Ответ

0 голосов
/ 10 ноября 2011

Прежде всего, поскольку вы упоминаете DataContext, я думаю, что вы смотрите на Linq to SQL? Я бы посоветовал использовать Entity Framework. Entity Framework имеет более продвинутые возможности моделирования, которые вы можете использовать в своем сценарии. Он может создавать, например, тип из нескольких таблиц, использовать наследование или сложные типы.

Entity Framework создает модель для вас, которая состоит из трех частей.

  • SSDL, в котором хранится внешний вид вашей базы данных.
  • CSDL, в котором хранится ваша модель (ваши объекты и отношения между ними)
  • MSL, который сообщает Entity Framework, как отобразить ваши объекты в структуру базы данных.

Используя это, вы можете создать унаследованную базу данных и сопоставить ее с моделью домена, которая более соответствует вашим потребностям.

Entity Framework имеет возможность создать начальную модель из вашей базы данных (где отображаются все таблицы, столбцы и ассоциации), а затем вы можете начать реструктуризацию этой модели. Эти классы генерируются как частичные, поэтому вы можете расширить их, например, разделив пипетированные поля базы данных на отдельные свойства.

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

Надеюсь, это даст вам какие-нибудь идеи.

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