0

我有一個ASP.NET MVC 4網站與MSSQL數據庫生成的代碼第一種方法。我想在另一個項目中使用這個數據庫。該項目應該從db中抓取多個表,更新它們並向用戶發送通知。在另一個項目中的實體框架5代碼第一個數據庫

什麼是從第一個項目添加現有的數據庫到第二個項目的最好方法?我正在考慮通過數據庫生成edmx,但這種方法看起來不夠好。

+0

首先通過數據庫方式生成edmx數據庫......這是完全有效的,你有什麼問題? –

+0

您的其他應用程序是否也是Web應用程序? – Pluc

+1

難道你不能把你的'DbContext'移動到一個庫中並在兩個項目中使用它嗎? – jrummell

回答

1

如果第二個項目是不會修改數據庫的結構,那麼我會用在你的第二個項目中的數據,第一種方法。

+0

我也在這個方向思考。首先在一個項目代碼中使用,而在另一個數據中使用它似乎很自然,因爲我們已經在另一個項目中準備好了數據。但是我遇到了DbContext&..Entries的問題(請參閱我對RaphaëlAlthaus下面的問題的評論)。 – aks

+1

Db首先可以使用dbContext,你只需要在你的edmx模型上使用它的代碼生成器:) – Maess

+0

這是個好消息!你能解釋我該怎麼做嗎?如果我通過數據庫生成edmx,那麼它會讓我成爲..Entities類。我如何獲得像我一樣的DbContext第一個項目? – aks

0

可以將現有的數據庫上使用codefirst映射沒有問題。所以在其他項目中使用datacontext進行簡單的引用程序集就行了。 (不要忘了在其他項目的配置文件設置連接字符串)

+0

我可以參考我的整個MVC 4項目,還是應該製作第三個項目並將db-代碼在裏面? – aks

+0

您應該將您的dbcontext和所有映射移動到不同的項目(按原樣),並從項目mvc和新項目中引用它。 –

2

你最好的EF代碼和實體移動到自己的圖書館,然後讓你的兩個不同的項目(Web和Windows服務)有一個參考去那個圖書館。

然後,如果當你的數據庫結構或實體的變化,您只需要做到這一點在同一個地方。

+0

這是一個很好的解決方案,但我想使用DbContext而不是..Entries。我可以創建一個單獨的DbContext庫,然後在ASP.NET MVC 4中使用它嗎?我害怕一些不常見的問題。但從第一次看,這應該是一個很好的解決方案。 – aks

相關問題