Автоматическое сопоставление с EntityKeys в Entity Framework

У кого-нибудь есть способ автоматического сопоставления (с помощью Automapper) ссылок на дочерние объекты. Итак, скажем, у меня есть ViewModel:

class AddressModel
{
    int Id;
    string Street;
    StateModel State;
}

class StateModel
{
    int Id;
    string Name;
}

И я передаю это в репозиторий для сопоставления с эквивалентными сущностями в Entity Framework. При автоматическом сопоставлении я хочу, чтобы AddressModel.State.ID автоматически сопоставлялся с EntityKey AddressEntity.StateReference. Таким образом, код, созданный вручную, будет выглядеть так:

addressEntity.Id = AddressModel.Id;
addressEntity.Street = AddressModel.Street
addressEntity.StateReference.EntityKey = new EntityKey("MyDB.States", "Id", AddressModel.State.Id);

Очевидно, что когда automapper пытается присвоить Address.State.Id эквиваленту в EF, возникает исключение.


person CodeGrue    schedule 29.04.2010    source источник


Ответы (1)


Я наткнулся на следующий блог, который объясняет природу моей проблемы и решает ее с помощью свойств внешнего ключа, поддерживаемых в EF4.0.

http://blogs.msdn.com/efdesign/archive/2009/03/16/foreign-keys-in-the-entity-framework.aspx

person CodeGrue    schedule 04.05.2010