我有一個使用EF代碼優先的asp.net MVC3項目。對於我的單元測試,我一直使用SQL Server CE 4.0和SQL Server 2008 Express。兩者都可以很好地與EF生成預期的數據庫。如何爲EF代碼優先配置ProviderManifestToken
然而,當我跑我的應用程序單元測試之外,在我的連接字符串指向它,我得到的錯誤
ProviderIncompatibleException:提供者未返回ProviderManifestToken串
我已經閱讀了MS的文檔,看起來這是EF模型生成的一個SqlVersion
令牌。問題是我正在使用代碼第一種方法,所以我沒有.edmx
文件,也不知道在哪裏指向我的元數據信息,因爲數據庫尚未生成。
我知道我的連接字符串只要db名稱,用戶名和傳遞都是正確的,因爲將它們更改爲錯誤的值會引發預期的錯誤。不知道從哪裏開始。
謝謝。
這裏是我的連接字符串:
<connectionStrings>
<add
name="SqlConnection"
providerName="System.Data.SqlClient"
connectionString="Data Source=WORKSTATION\SQLEXPRESS;Initial Catalog=CodeFirst;Integrated Security=False;
Persist Security Info=False;User ID=CodeFirst_user;Password=password1;Connect Timeout=120;MultipleActiveResultSets=True;"/>
</connectionStrings>
您確定使用了連接字符串嗎?它應該和從DbContext派生的類具有相同的名稱。 – 2011-01-19 22:36:43
就是這樣。我發現問題是什麼。這是幾件事情。 (1)即使數據庫爲空,也不應在SqlServer中預先創建數據庫。讓EF做到這一點。 (2)如果未在DbContext中聲明,則應包含初始目錄名稱。 (3)我無法在Medium Trust下創建數據庫。希望這可以幫助某人。 – trevorc 2011-01-19 23:12:41
@nameEquals ...你是如何解決上述第3項的? – 2011-05-09 22:51:01