我在一個dll中有一個edmx,並且需要在另一個dll中的edmx中有一個實體繼承自第一個edmx中的實體。我曾嘗試將第一個edmx的初始上下文與第二個edmx擴展,但沒有成功。什麼是完成這個最好的方法?實體框架中兩個上下文之間的繼承
2
A
回答
1
這是不可能的。一個EDMX =一個ObjectContext
,其中沒有繼承。我發現了一個special hack如何強制上下文來加載多個EDMX,但它們必須在同一個程序集中,並且它僅適用於交叉EDMX linq-to-entities查詢。
我認爲你必須在第二個EDMX中再次建模整個繼承層次結構,並且爲parent = parent實體重用相同的POCO類必須在兩個EDMX中。查看這些關於使用多個型號的文章(part 1,part 2)。有可能從其他EDMX中的一個EDMX中重用CSDL類型來定義關聯,但它不能用於繼承,因爲MSL中定義了不能重用的繼承。
+0
我最終重新思考我的邏輯,所以這不再是一項要求。我希望這是可能的,希望Entity Framework將來能夠做類似的事情。 – kroehre 2011-05-06 21:36:42
0
繼承可能不是最好的解決方案。我會建議來自不同組件的依賴注入,例如:
public class CompositeObj
{
protected ObjectType1 obj1 { get; set; }
protected ObjectType2 obj2 { get; set; }
public CompositeObj(ObjectType1 obj1, ObjectType2 obj2)
{
this.obj1 = obj1;
this.obj2 = obj2;
}
public string Property1 { get { return this.obj1.Property1; } }
public string Property2 { get { return this.obj2.Property2; } }
pulbic string Property3 { get { return this.obj1.Property1 + this.obj2.Property2; } }
}
相關問題
- 1. 實體框架多繼承?
- 2. 實體框架 - 繼承
- 3. 實體框架表繼承
- 4. 實體框架和繼承
- 5. 實體框架 - 繼承
- 6. 實體框架繼承
- 7. 實體框架繼承InverseProperty
- 8. 實體框架繼承
- 9. 實體框架4 - 繼承
- 10. 實體框架上下文可以返回一個繼承實體
- 11. 實體框架自底向上繼承
- 12. 實體框架TPT繼承移動表之間的數據
- 13. 實體框架中的複雜繼承
- 14. 實體框架中的接口繼承
- 15. 實體框架中的POCO繼承
- 16. 實體框架4合併兩個實體之間的更改
- 17. 從實體框架對象的繼承
- 18. 實體框架中的繼承 - 每個具體類的表?
- 19. 實體框架上下文?
- 20. 實體框架上下文
- 21. 實體框架中的POCO實體的繼承4
- 22. 實體框架繼承和邏輯
- 23. 瓶頸使用實體框架繼承
- 24. 多級繼承。實體框架C#
- 25. 實體框架繼承和關係
- 26. 實體框架繼承映射(TPH)
- 27. 實體框架 - 繼承空值
- 28. 實體框架繼承和持久列
- 29. 從SQL成員實體框架繼承
- 30. 實體框架和繼承:NotSupportedException異常
這可能有幫助:http://stackoverflow.com/questions/5558309/entity-framework-inserting-entity-with-multiple-models-and-databases/5598664#5598664 – 2011-05-07 00:38:40
我能夠使用EF代碼完成此操作首先和這:http://stackoverflow.com/questions/6300990/ef-ctp5-context-inheritance-across-multiple-assemblies – kroehre 2011-10-09 00:06:56
這是爲什麼downvoted? – kroehre 2011-10-10 14:47:47