我在一個解決方案中有三個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.
...所以有一些問題,試圖從項目中使用的實體,我我不明白是什麼。有什麼想法嗎?
有什麼問題? – 2012-03-06 19:28:56
如果您已經有了另外兩個引用的第三個項目,那麼您可以完全按照您的寫法來完成。這裏有什麼問題? – Blindy 2012-03-06 19:36:00