次の接続文字列があるとします。
<add name="PrimaryDBConnectionString" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="Data Source=10.1.1.101;Initial Catalog=primary;Persist Security Info=True;User ID=myuserid;Password=mypassword;MultipleActiveResultSets=True;Application Name=EntityFramework"" />
DAL で次の接続を開こうとしています。
using (PrimaryDBContext ctx = new PrimaryDBContext(ConfigurationManager.ConnectionStrings["PrimaryDBConnectionString"].ToString()))
{
try
{
ctx.Connection.Open();
var result = ctx.sq_newsfeed_GetProfileByID(profileID);
私が得るエラーは次のとおりです。
基になるプロバイダーが Open で失敗しました
私はEF接続文字列をいじって、すべてのプロバイダープレフィックスを「metadata = res://* /;」に置き換えました。しかし、まだ行きません。
誰でもこれに光を当てることができますか?
ありがとう。
- アップデート -
返信ありがとうございます... UIから新しいdb接続を作成し、ニーズに合わせて接続文字列を変更するだけで終わりました:
<add name="PrimaryEntities" connectionString="metadata=res://*/PrimaryModel1.csdl|res://*/PrimaryModel1.ssdl|res://*/PrimaryModel1.msl;provider=System.Data.SqlClient;provider connection string="data source=10.99.108.42;initial catalog=primary;user id=dbuserID;password=somepw;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
メタデータ部分を保持しました。トリックは、.csdl、.ssdl、および .msl ファイル名のプレフィックスがデータベース コンテキストと一致することを確認することでした。