我使用實體框架6代碼優先空數據庫。我已經創建了相當多的POCO類,它們具有相當複雜的類層次結構(相當數量的抽象類和相當多的具體類)。我希望能夠以某種方式修飾我的類,以便它們自動添加到DbContext中,而不必爲每個類創建DbSet屬性,但是我擔心這會在嘗試更新時導致問題 - 數據庫。 我在這裏看到了一些線程,有人似乎在問一個類似的問題,但是響應看起來更像是使用DbContext.Set()獲得對現有集合的引用。我必須在DbContext上創建顯式的DbSet屬性嗎?
回答
我發現我不需要爲每個類添加顯式DbSet屬性到DbContext,因爲EF會自動將所有相關類添加到模型中。
我能偷懶,只對一些類中使用DbContext.Set <>()方法中添加明確的屬性,然後引用任何其他類:
var q = from x in myContext.Set<myClass>() select x;
如果您依賴於代碼優先遷移,那麼是的,EF使用您的DbContext
上的反射來發現要創建的表。每個DbSet
屬性都映射到數據庫中的表。
非常感謝您的明確回答,儘管這非常令人失望。 – 2014-10-10 16:56:22
雖然,我想我可以創建一個部分類,使用DbSets生成我想...聽起來很有趣:) – 2014-10-10 16:57:04
@MattKnowles - 不要低估代碼生成的力量:)雖然我不確定努力是值得:「根據模型上的屬性自動生成DbSet道具」與「只是在引入新模型時添加該屬性」 – 2014-10-10 17:21:40
- 1. EF 4.1:我需要將DbSet屬性添加到DbContext嗎?
- 2. AVAudioPlayer - 你必須創建一個屬性才能工作嗎? (Xcode)
- 3. 在Dapper DbContext,DbSet等
- 4. 屬性值必須在@Retryable
- 5. 我必須在-dealloc中釋放瞬態屬性嗎?
- 6. 我是否必須顯式創建#temp表?
- 7. DbContext在訪問基本屬性時重寫DbSet屬性獲取器
- 8. DbContext必須轉換爲System.Data.Entity.DbContext
- 9. 我必須手動釋放聲明爲保留的屬性嗎?
- 10. ro.sf.lcd_density必須定義爲構建屬性
- 11. 導航屬性可以有[必須]屬性嗎?
- 12. 從DbSet獲取DbContext
- 13. 我可以在樣式中創建自己的屬性嗎?
- 14. 爲什麼我必須在屬性上實現set-method?
- 15. 在通過Git推送之前,我必須在github上創建文件嗎?
- 16. 我想創建一個DeskBand。我必須使用C++嗎?
- 17. 我可以通過LinqPad創建DbContext嗎?
- 18. 爲什麼我的DbContext DbSet爲null?
- 19. 上dbset動態查詢中的DbContext類
- 20. NSNotification:對象屬性必須是自我嗎?
- 21. 我必須清理window.onunload事件上的自定義屬性(Expandos)嗎?
- 22. 您是否必須在VB.NET中顯式創建表單實例?
- 23. 我必須爲log4j中的所有類創建appender嗎?
- 24. 我必須使用Cgo創建的免費結構嗎?
- 25. 我必須顯式關閉異步HTTP請求的ResponseStream嗎?
- 26. 我必須顯示其創建日期的數據庫列表記錄嗎?
- 27. 帶動態DbSet的DbContext
- 28. 我必須在Centos 7上創建網絡控制器
- 29. .htaccess創建或修改:我必須重新啓動Apache嗎?
- 30. 在C#中,我是否必須執行顯式上傳?
能否請你添加一個鏈接你提到的文章? – elolos 2014-10-10 15:02:38
據我所知,答案是肯定的,你必須爲每個POCO類添加一個'DbSet'屬性。 – pquest 2014-10-10 15:08:44
爲什麼你擔心這會導致問題?你總是可以試試你知道:) – 2014-10-10 15:14:16