2009-10-23 2 views
3

Я использую VS2010 Beta 2, у меня есть комплекс типа под названием Адрес со следующими свойствами:Как добавить свойство навигации для Entity Framework Complex Тип

  • Street
  • Город
  • CountryId

у меня есть Страна Entity определено в моей модели, но я не могу показаться, чтобы найти способ объявления d Ссылка (навигационное свойство) от CountryId Недвижимость моего комплекса Тип Id Недвижимость моего Страна Объект.

Я буду об этом не в ту сторону, или это то, что я не могу сделать с дизайнером ?? ...

Другой вариант у меня есть только создание адреса субъекта, но это просто не звучит правильно для меня.

+0

Тип комплекса адресов содержит другие свойства, они просто не актуальны на данный момент ..... – hminaya

ответ

1

Ok,

Похоже, что текущая версия Entity Framework не поддерживает свойство навигации или внешнего ключа в пределах сложного типа.

Другим разумным вариантом является создание отдельной адресной сущности, которая будет иметь все необходимые ему внешние ключи, а затем создавать свойства навигации во всех моих других объектах.

4

Нет, вы не можете этого сделать, потому что это противоречит идее о том, какие сложные типы и свойства навигации. Сложные типы имеют семантику значения, а не ссылочную идентичность. Свойства навигации являются первоклассными объектами и имеют ссылочную семантику. Поэтому они не могут быть частью сложного типа. Как оказалось, вы обнаружили, что решение состоит в разделении частей с семантикой значения на сложный тип и добавлении его в объект, содержащий требуемые свойства навигации.

+0

Можно ли это сделать в nHibernate? – billy

+3

Как это нарушает семантику значений? Свойство навигации - это просто ссылка на объект. – MZywitza

+0

@MZywitza: Вы просто ответили на свой вопрос. Если он содержит ссылку, это действительно не тип значения. См. Рекомендации Microsoft по типам значений: http://msdn.microsoft.com/en-us/library/ms229017.aspx –

Смежные вопросы