6

Asp.Net MVC アプリケーションのデータベース アクセス用に ODBC DSN を作成しました。主な理由の 1 つは、データベースの資格情報 (サーバー アドレス、ポート、ユーザー名、パスワードなど) をソース管理から除外し、公開能力を妨げることなく維持できることです。

そこで、接続を に変更しましたDSN=MyDSN

残念ながら、Entity Framework クエリを実行すると、Exception Details: System.ArgumentException: Keyword not supported: 'dsn'.

私が間違っていることを誰かが知っていますか?

4

1 に答える 1

9

System.Data.OdbcODBC DSNを使用する場合は、接続文字列でマネージドSQLクライアントではなくネイティブプロバイダーを使用する必要があります。

編集:

だから今、理論から実践へ。内部EFが実装されているため、機能しません。EFDbProviderFactoryは、作成された接続から取得しようとするメソッドを内部的に呼び出します。問題は、このプロパティがで定義されてDbConnectionおり、を返すことnullです。プロパティのみSqlConnectionをオーバーライドし、正しいファクトリを返します。したがって、EFはデフォルトのODBCプロバイダーでは機能しません。ここでは、その理由を非常に明確に説明します。

于 2011-07-04T14:06:07.290 に答える