Отображение POCO в Entity в Entity Framework - PullRequest
1 голос
/ 02 декабря 2009

Я использую EF для Visual Studio 2008, поэтому у меня нет интеграции POCO с EF.

Поскольку у нас есть n-уровневое приложение, мы постоянно сопоставляем POCO с сущностями, сущности не выбрасываются на верхние уровни, я сопоставляю их с Automapper и вручную.

Большая проблема, которую мы имеем, заключается в отображении из POCO в сущности.

Если я добавляю новую сущность, которая имеет отношение с существующими сущностями (например, добавление новой учетной записи для существующего Клиента) , у меня есть существующая сущность POCO, и она необходима для получения связанной сущности (например, Клиент) из базы данных, это просто что-то очень медленное.

И вот мой вопрос:

Как я могу создать объект, должным образом присоединенный к контексту и тому подобному, из объекта POCO, не обращаясь к базе данных?

Ответы [ 2 ]

1 голос
/ 02 декабря 2009

Установите EntityKey вместо загрузки связанного объекта из БД (обратите внимание, есть лучший способ сделать это в EF 4; это для EF 1):

var account = new EntityAccount
              {
                  Name = pocoAccount.Name,
                  // etc.
              };
// now instead of doing account.Client = Context.Clients.Where(...
account.ClientReference.EntityKey = 
    new EntityKey("MyEntities.Clients", "Id", pocoAccount.Client.Id);

Это вообще не делает доступ к БД.

1 голос
/ 02 декабря 2009

Попробуйте образец адаптера EF POCO: http://code.msdn.microsoft.com/EFPocoAdapter

...