2016-11-04 4 views
0

У меня проблема с иерархической настройкой здесь, и я не могу понять, как правильно ее настроить с помощью фреймворка сущности, или если это даже возможно.Сопоставление отношения «много к одному» по представлению в сущности Framework 6 fluent api

У меня есть самостоятельно реферирование таблицы, где у меня есть моя сущность и ссылка на родительский элемент:

MyEntity (Id, Name, ParentId)

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

MyView (EntityId, EntityRootId)

Я сделал виртуальную недвижимость в MyEntity непосредственно траверс корневого элемента над видом, так сказать. Он работал до тех пор, пока у меня был промежуточный шаг, где я дал представление своей собственной сущности (MyEntityRoot).

MyEntity> MyEntityRoot> MyEntity

Теперь я хочу, чтобы удалить эту окольные и перейти непосредственно из MyEntity> MyEntity

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

Возможно ли это? Или я должен придерживаться сущности между ними, хотя я не хочу этого там?

Что бы это было? Я пробовал что-то подобное, но это не работает.

modelBuilder 
    .Entity<MyEntity>() 
    .HasRequired(e => e.Root) 
    .WithMany() 
    .Map(m => 
     m.ToTable("MyView"); 
     m.MapKey("EntityRootId") 
    ) 
+0

* Это не работает * Не могли бы вы уточнить, что именно не работает? –

ответ

0

Ну, я думаю, это невозможно.

Я решил это, обратившись к нему как к многим отношениям. Вид работает как ассоциативная таблица.

Единственная проблема, которая осталась в том, что я должен получить к ней доступ, как MyEntity.Roots.First() вместо MyEntity.Root, хотя всегда есть только один элемент.

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

  • Нет связанных вопросов^_^