2016-11-04 54 views
0

我在這裏有一個分層設置的問題,我無法弄清楚如何正確配置實體框架fluentapi,或者如果它甚至有可能。實體框架中的視圖映射多對一的關係6流利的API

我有我的自我引用表在那裏我有我的實體和父項的引用:

myEntity所(ID,姓名,的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那樣訪問它,儘管始終只有一個元素。