#環境
・VS2017 (.NetFramework4.6.1)
・C#
・Windows Form
・EntityFramework 6.2
・SQL Serverへのアクセス
#作成手順
SQL ServerにDBを作成し、幾つかテーブルを作成しました。
その後、ソリューションの新しい項目の追加
⇒ ADO.NET Entity DataModel
⇒ データベースからCode First
を選択しモデル、DBContextを作成しました。
#困っている事
作成されたDBContextのインスタンス生成後、
var hoge = context.MRiders.Local.ToList();
だったり
context.SaveChanges();
などをおこなったタイミングで、以下のような例外が発生しています。
System.InvalidOperationException: 'ADO.NET プロバイダーに、不変名が 'System.Data.SqlClient' の Entity Framework プロバイダーがありません。アプリケーションの構成ファイルの "entityFramework" セクションにプロバイダーが登録されていることを確認してください。詳細については、http://go.microsoft.com/fwlink/?LinkId=260882 を参照してください。
どのような設定をすれば、
例外を発生させずにテーブルからのデータ取得やデータの追加ができるようになるのでしょうか。
#調べてみた事
メッセージ通りですと、App.ConfigのentityFrameworkセクションにプロバイダーがないということでしたので、App.Configを見ました。
SQLServerを使用しているので、プロバイダーセクションにSQL Serverが設定されてあることは確認しました。
App.Config
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> </startup> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> <parameters> <parameter value="System.Data.SqlServerCe.4.0" /> </parameters> </defaultConnectionFactory> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>
まだ回答がついていません
会員登録して回答してみよう