1. ホーム
  2. asp.net

[解決済み] キーワードがサポートされていないデータソース

2022-02-01 02:05:13

質問

asp.net-mvcアプリケーションで、デフォルトの会員制データベースを使用しています。私は、ADO.NET Entity Frameworkによってそれにアクセスしています。

今、私はそれをIISに移動したいのですが、いくつかの問題が表示されました。SQL Server Management Studioをインストールし、新しいDBを作成し、以前の.MDFファイルからすべてのデータをそこにインポートする必要がありました。私が知っている限りでは、接続文字列を変更することだけが残っています。しかし、私はあまり経験がなく、Keyword not supportedというエラーが出てしまいます。データソース "という例外が発生します。以下は私の接続文字列です。

<add name="ASPNETDBEntities" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.EntityClient" />

何か思い当たることはありますか?

解決方法は?

あなたが持っているのは有効なADO.NET接続文字列ですが、それは NOT 有効な Entity Framework 接続文字列です。

EFの接続文字列は以下のようなものです。

<connectionStrings> 
  <add name="NorthwindEntities" connectionString=
     "metadata=.\Northwind.csdl|.\Northwind.ssdl|.\Northwind.msl;
      provider=System.Data.SqlClient;
      provider connection string=&quot;Data Source=SERVER\SQL2000;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=False&quot;" 
      providerName="System.Data.EntityClient" /> 
</connectionStrings>

がすべて抜けていますね。 metadata=providerName= 要素に含まれるものだけです。 provider connection string の部分です。

EDMX デザイナーを使用すると、有効な EF 接続文字列を web.config または app.config に作成する必要があります。

マルク

ASP.NETのユーザー/会員データベース用に、2つ目の"ADO.NET"接続文字列が必要なのですね。この接続は ENtity Framework を使用しないので、quot;EntityClient" を指定しないでください!あなたの文字列はOKですが、providerName が間違っています。

<add name="ASPNETMembership" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.SqlClient" />

を指定した場合 providerName=System.Data.EntityClient ==> エンティティフレームワーク 接続文字列(metadata=とすべて含む)。

が必要で、指定する場合は providerName=System.Data.SqlClient ==> ストレートADO.NET SQL Server の接続文字列から EF の追加をすべて取り除いたもの