Entity Framework 4 - PullRequest
       2

Entity Framework 4

2 голосов
/ 08 апреля 2011

Я решил преобразовать свой DAL в Entity Framework 4.0.
У меня уже есть огромная база данных, а также много бизнес-классов.
Как я могу сопоставить таблицы и поля с моими классами?

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Entity Framework позволяет создавать сопоставление для вашего «концептуального» домена (ваших объектов) и отдельное сопоставление для «хранилища» домена (вашей базы данных).Затем вы отображаете их вместе, используя центральную концептуальную <-> спецификацию отображения хранилища.Звучит сложно, и, к сожалению, это так ... EF - не легкий инструмент.

Изучить многое можно, но для начала нужно прочитать о CSDL, SSDL иСпецификации MSL для Entity Framework .

Если вы хотите использовать текущие объекты и базу данных, вам может потребоваться определить пользовательские сопоставления в CSDL, SSDL и MSL.Если вы хотите упростить свою жизнь, вы можете сгенерировать модель данных Entity по умолчанию, используя встроенные инструменты Visual Studio.Создание EDM из существующей базы данных приведет к созданию объектов, которые сопоставляются с вашей базой данных, но существует около миллиона способов настроить этот процесс, и существует несколько способов определить ваши объекты, чтобы их можно было использовать с EF.

Я бы предложил создать EDM по умолчанию из вашей базы данных и взглянуть на созданный файл .edmx..Edmx обычно содержит CSDL, SSDL и MSL в формате XML вместе с сгенерированным кодом.(Опять же, это может быть полностью настроено).Вы можете также потратить некоторое время на чтение EF ... это чудовище.

1 голос
/ 08 апреля 2011

Есть много способов снять шкуру с этой кошки. AutoMapper - это то, что приходит на ум.

Вы также можете сделать это вручную с помощью LINQ, например:

MyObject obj = (from e in entityModel
                select new MyObject {
                  ID = e.ID, 
                  Name = e.Name, 
                  // etc...
                }
               );

Вы также можете написать свой собственный метод, который использует Reflection для сопоставления свойств по типу и имени.

... Просто выбрасываю кучу идей.

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