この問題で1日を過ごした後、私はついにこの問題がmodel.edmxファイルから来ていることを理解しました。
このファイルには、エンティティセットごとに1行があります。 各EntitySet要素には、schemaという属性があります。タイプ= "表の" スキーマ= "MyDatabaseという":
のEntitySet名= "annee_civile" EntityType = "openemisModel.Store.annee_civile" ストアは:SQL Serverの場合、この属性は、関連テーブルのスキーマに設定されています/>
あなたはEntityConnectionを所有constructiongスキーマの名前を提供する場合、そこに矛盾があり、最終的には、EDMXファイルで定義されたスキーマは、あなたが別のものを指定した場合にも使用されることをことを思え接続パラメータ
解決策は、単にedmxファイル内のスキーマの名前を削除することです。 これはMYSQLで動作しますが、SQLサーバに接続しているとは限りません。
のEntitySet NAME = "annee_civile" EntityType = "openemisModel.Store.annee_civile" 店舗:タイプ= "表" スキーマ= "" />
EntityConnectionStringBuilder:
string provideString = "ユーザーID = xxxx;パスワード= xxx;ホスト= xxxx;データベース= anydatabasename"; EntityConnectionStringBuilder entityConnBuilder =新しいEntityConnectionStringBuilder(); entityConnBuilder.Provider = "Devart.Data.MySql"; entityConnBuilder.Metadata = @ "res:// /OpenEmisModel.csdl|res/ /OpenEmisModel.ssdl|res://*/OpenEmisModel.msl"; entityConnBuilder.ProviderConnectionString = provideString;
EntityConnection及びそれを用いたオブジェクトコンテキスト:
EntityConnection entityConnexionEmis =新しいEntityConnection(entityConnBuilder。ConnectionString);
objectcontextEntities testingContext = new objectcontextEntities(entityConnexionEmis);
ソフトウェアは、任意のデータベース名に接続できるようになりました。
これが役に立ちます。
コードサンプルがhelpful-はそれをしないだろう実際には*作業*デバッグ時に、またはObjectContextに正しい接続文字列を表示するだけですか? –