2013-01-14 74 views
1

我剛剛用Entity Framework和Code First開發了一個MVC Web應用程序。此應用程序將作業排入表中。Windows服務中的實體框架(客戶端 - 服務器應用程序)

現在我正在開發一個讀取該作業表的Windows服務,並處理作業。完美的解決方案是在這個Windows服務中使用實體框架。

我的問題是如何在Windows服務中實現實體框架,更重要的是如何在Windows服務(認爲是客戶端)中使用MVC Web應用程序(認爲是服務器)的模型。

我已經看到Code First與ADO.NET Self-Tracking Entity Generator不兼容,它似乎是服務器 - 客戶端環境的正確解決方案。我是否需要將Code First EF應用程序更改爲STE,或者是否有其他解決方案來獲取Windows服務中的模型?

我已經用google搜索瞭如何在充當客戶端的Windows服務中實現EF,但什麼都沒發現。如何做/教程將是完美的。

非常感謝您

回答

0

1)共享數據層:

您應該將數據層的代碼分離到一個單獨的組件(項目),並參考這個來自您的Web應用程序和服務。

2)自跟蹤實體:

你不應該再使用這些。它們在EF 4.1之前很有用,但現在已經過時。在您的服務中使用您的POCO對象是很好的。

+0

答案1)似乎是一個很好的解決方案。如果我分開模型,就像這個答案解釋(http://stackoverflow.com/a/6585397/690023),那就足夠了,否則我還需要做其他的事情? – Alberto

+0

您只需要分離出您的數據訪問代碼,以便您可以像使用Web應用程序一樣從Windows服務中使用它。這可能僅僅意味着你的代碼優先類和你的DbContext派生類。 –

+0

只爲有同樣問題的人,它的工作很完美。我遵循http://stackoverflow.com/a/6585397/690023,並在app.config中插入數據庫的連接字符串。 – Alberto

相關問題