我一直在研究如何在我的C#遊戲服務器中使用實體框架來簡化查詢。我是類型安全的忠實粉絲,實體框架在自動化大部分樣板代碼方面做得非常出色。雖然我不太清楚如何去利用一些組件,即ObjectContext
。實體框架與遊戲服務器
服務器使用了相當多的線程,所以線程安全是一個問題。現在我只是使用自定義池來執行查詢。沒有進入太多細節,每個查詢工作在時尚:
- 搶
DbConnection
- 搶
DbCommand
- 允許查詢類設置參數
- 執行
DbCommand
- 允許查詢類來處理查詢結果,如果有的話
- 免費
DbCommand
- 免費的
DbConnection
這是非常乾淨,快速,安全的,但問題是,創建查詢是有點麻煩,我必須手動生成和更新「容器類」如果我想類型安全。這就是我轉向實體框架的原因。
由於不用擔心哪個DbConnection
/Command會針對哪個對象或任何對象執行查詢,因此這一切都可以使用DbConnection
和DbCommand
。
無論如何,我不知道如何解釋它,而不會受到限制。做一些事情,比如每次我通常使用DbConnection
/Command執行一個查詢,保存它,並且處理ObjectContext只會增加太多開銷,因爲我不需要頻繁更新數據庫。
您將如何使用實體框架來對遊戲服務器的數據庫要求不高並且不斷更新?
你的問題確切的是什麼?如果您的數據庫不經常更新,那麼DataContext不會導致大量開銷。你確實處理你的dbcommands和dbconnections? – 2009-07-28 02:27:45