EF Core rc 1をEF Core rc 2に置き換えた後、GetService()メソッドを呼び出すときに無効な操作例外が発生しています。ここでの目標は、任意のDbSetから対応するDbContextを得ることです:EFコアRC2 FinaI問題:このDbContextにデータベースプロバイダが設定されていません
public static ObservableCollection<TEntity> Local<TEntity>(this DbSet<TEntity> set)
where TEntity : class
{
var context = set.GetService<DbContext>();
...
}
例外フルメッセージ:
ないデータベースプロバイダは、このDbContextのために設定されています。 プロバイダーは、DbContext.OnConfiguring メソッドをオーバーライドするか、アプリケーションサービスプロバイダーでAddDbContextを使用して構成できます。 AddDbContextを使用する場合は、DbContextタイプ がコンストラクタ内でDbContextOptionsオブジェクトを受け入れて、DbContextの基本コンストラクタ に渡すようにしてください。
我々は効果的にOnConfiguringのデータベースプロバイダを設定している:
protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
base.OnConfiguring(builder);
var connStringBuilder = new SqlConnectionStringBuilder();
connStringBuilder.UserID = "MyUserID";
...
builder.UseSqlServer(connStringBuilder.ConnectionString);
}
だから、与えられたDbSetの正しいDbContextインスタンスを解決していない)問題がメソッドGetService(から来ているようです?。
public static ObservableCollection<TEntity> Local<TEntity>(this DbSet<TEntity> set)
where TEntity : class
{
var context = set.GetService<ICurrentDbContext>().Context;
...
}
注DbContextのICurrentDbContext代わりインターフェースの使用: