2011-05-23 70 views
0

我有一個類庫,它有自己的模型和連接到數據庫的連接字符串。獨立,這工作都很好,從數據庫中檢索數據沒有問題。這個庫的想法是在另一個應用程序中創建一個dll和引用。如何在mvc3項目中使用引用dll的模型

在我的情況下,我有一個MVC3的Web應用程序與它自己的模型和connectionstring。我引用了類庫,添加了第二個連接字符串,並構建了整個應用程序。但是,當我運行應用程序並實際調用引用庫中的方法時,我得到一個EntitySqlException,說「'MyTable'無法在當前範圍或上下文中解析。確保所有引用的變量都在範圍內,被加載,並且名稱空間被正確引用。在轉義標識符附近,第1行,第1列。「

我確信,引用庫的模型文件也複製到了MVC項目的bin目錄,我的web.config看起來像這樣:

<configSections> 
<section name="DefaultArchitecture" type="DefaultArchitectureConfiguration"/> 
</configSections> 

<DefaultArchitecture defaultContainerName="defaultContainer" connectionStringName="defaultContainer"/> 

<connectionStrings> 
<add name="defaultContainer" connectionString="metadata=res://*/MvcModel.csdl|res://*/MvcModel.ssdl|res://*/MvcModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=cloudaddress;Initial Catalog=main catalog;User ID=user;Password=pass;Encrypt=true;Trusted_Connection=false;trustServerCertificate=true&quot;" providerName="System.Data.EntityClient" /> 
<add name="secondContainer" 
    connectionString="metadata=~\bin\libmodel.csdl| 
           ~\bin\libmodel.ssdl| 
           ~\bin\libmodel.msl; 
         provider=System.Data.SqlClient; 
         provider connection string=&quot; 
         data source=cloudaddress; 
         initial catalog=othercatalog; 
         persist security info=True; 
         user id=user; 
         password=pass; 
         multipleactiveresultsets=True; 
         App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 

如果我改變defaultcontainername到第二個容器......它適用於引用的庫,但當然不再是defaultcontainer。

問題是......我怎樣才能在我的mvc項目中使用這兩種模型,通過使用它自己的模型(和自己的數據庫)引用類庫,而不存在無法解析其中一個實體的問題。

希望我的問題很清楚。如果沒有,請讓我知道,這樣我可以提供更多信息。

回答

0

最終證明是一個上下文問題。調用類庫時,我仍然使用錯誤的上下文。我通過實施一個無與倫比的方法並轉換到創建圖書館服務級別的正確上下文來解決這個問題。