2012-03-06 213 views
2

我在一個解決方案中有三個C#ASP.NET MVC2項目。爲簡單起見,名稱已被更改。ADO.Net:在解決方案中的多個項目之間共享實體(.edmx)

解決方案是MY_COMPANY_SITES。

它有三個項目:CUSTOMER_SITE,INTRANET_SITE,CENTRAL_REPOSITORY。

... CUSTOMER_SITE和INTRANET_SITE項目都有自己的ADO.Net實體模型,通過EDMX生成並連接到它們自己的數據庫。 CENTRAL_REPOSITORY項目包含第三個ADO.Net實體模型,與其自己的數據庫鏈接。

這是需要我的情況,這三個數據庫是分開的;在這裏解釋需要很長的時間。

我需要做的是:給CUSTOMER_SITE和INTRANET_SITE兩個訪問權限,除了它們自己的CENTRAL_REPOSITORY ADO.Net實體。

即,下面的代碼應該工作:

CUSTOMER_Entities custDb = new CUSTOMER_Entities(); 
CENTRAL_Entities ctrDb = new CENTRAL_Entities(); 

StoreLocation firstLoc = ctrDB.StoreLocations.First(); 

List<Order> orders = (from n in custDb.Orders 
         where n.LocationID == firstLoc.LocationID 
         select n).ToList(); 

...我還喜歡理想,如果我的CENTRAL_REPOSITORY內修改的實體模型,它只是被其他應用程序,因此我不掛我不需要在三者之間複製所有的變化。

我認爲必須有一個「正確」的方式來做到這一點。可以非常理解如何使用一些幫助。

謝謝!

UPDATE:

Blindy(下同)指示我發現答案是在Solution Explorer中的CUSTOMER_SITE內的「參考」只是單擊鼠標右鍵,然後單擊「添加引用... 「,然後選擇CENTRAL_REPOSITORY項目,然後單擊確定。瞧,一切都應運而生。

但是,它實際上並不能正常工作。具體而言,當我嘗試從CUSTOMER_SITE或INTRANET_SITE內訪問CENTRAL_REPOSITORY的數據實體,我得到這個錯誤:

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid. 

...所以有一些問題,試圖從項目中使用的實體,我我不明白是什麼。有什麼想法嗎?

+0

有什麼問題? – 2012-03-06 19:28:56

+0

如果您已經有了另外兩個引用的第三個項目,那麼您可以完全按照您的寫法來完成。這裏有什麼問題? – Blindy 2012-03-06 19:36:00

回答

0

要回答您的問題,您需要在其他兩個站點的配置中具有適當的連接字符串,以使您的CENTRAL_REPOSITORY能夠使用它來連接。查看原始站點配置並將該連接複製到其他兩個站點。

0

您需要在app.config文件中爲每個使用linq to entities模型來解決此錯誤的項目創建一個連接字符串。

相關問題