背景:web
以前項目使用的是DB first/Model first,如今要對EF升級的6.0,而且更換成Code first。windows
問題:tcp
1. System.Data.Entity.Core.MetadataException: Unable to load the specified metadata resource.ide
<add name="TestContext" connectionString="metadata=res://*/Test.csdl|res://*/Test.ssdl| res://*/Test.msl; provider=System.Data.SqlClient;provider connection string="Data Source=tcp:[***test***].database.windows.net,1433;Initial Catalog=test;persist security info=True;User ID=[***test***];Password=[***test***];multipleactiveresultsets=True;Encrypt=True;Trusted_Connection=false;App=EntityFramework;Connection Timeout=30;"" providerName="System.Data.EntityClient"/>
2. 更改metadata值;ui
System.ArgumentException: Argument 'xmlReader' is not valid. A minimum of one .ssdl artifact must be supplied.spa
<add name="TestContext" connectionString="metadata=res://*/; provider=System.Data.SqlClient;provider connection string="Data Source=tcp:[***test***].database.windows.net,1433;Initial Catalog=test;persist security info=True;User ID=[***test***];Password=[***test***];multipleactiveresultsets=True;Encrypt=True;Trusted_Connection=false;App=EntityFramework;Connection Timeout=30;"" providerName="System.Data.EntityClient"/>
3. 刪除metadata;.net
System.ArgumentException: Some required information is missing from the connection string. The 'metadata' keyword is always required.code
<add name="TestContext" connectionString=" provider=System.Data.SqlClient;provider connection string="Data Source=tcp:[***test***].database.windows.net,1433;Initial Catalog=test;persist security info=True;User ID=[***test***];Password=[***test***];multipleactiveresultsets=True;Encrypt=True;Trusted_Connection=false;App=EntityFramework;Connection Timeout=30;"" providerName="System.Data.EntityClient"/>
解決方法:orm
對於code first, connectionstring 跟以前的web form程序裏的寫法同樣;xml
<add name="TestContext" connectionString="Data Source=[***DB Server Name];Initial Catalog=[***DB Name***];Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
Reference link: