這讓我有點惱火,至少可以說...EF和一個裝配多個SQL版本 - 這可能
我升級服務層項目,體驗最新版本,並在這個過程中「將我所有的Linq升級到Sql模型到Entity Framework。到目前爲止,我已經完成了四個數據庫,現在正在運行測試 - 我的測試失敗,出現錯誤
System.Data.MetadataException:指定的模式無效。錯誤: DB.WebDB.ssdl(2,84):錯誤0169:所有SSDL工件必須以相同的提供程序爲目標。 ProviderManifestToken'2008'與之前遇到的'2005'不同。
做一些谷歌搜索我發現這通常是由不同的開發/活的SQL服務器版本引起的。
我的情況是不同的,但是 - 我有多個活動數據庫服務器上運行不同的版本 - 2005年,2008年和2008 R2 - 我需要能夠交談的所有的人,用不同的EDMXs。
對此SO:Multiple Versions of SQL Server using Entity Framework in a single ASP.NET application看來,一種解決方案是將不同版本的EDMX分成不同的組件(即2005和2008版本)。據推測,另一個解決方案將迫使我的ProviderManifestToken
在2008年源數據庫爲2005
。然而,對我而言,我必須創建不同的程序集純粹只是爲了滿足EF中的一個行爲怪癖,可以讓一個EDMX打破所有其他程序的想法是荒謬的 - 對我來說,單獨的程序集是一個架構決策。同樣地,黑客使用EDMX文件降級2008數據庫也是不可取的,尤其是當下一次「從數據庫更新...」命令將其再次更改時。
任何人有一個替代的解決方案?
好,吸住。好吧。 +1&acc即使它是壞消息:) –