için veritabanı sağlayıcısı yapılandırılmamış EF Core rc 1, EF Core rc 2 final ile değiştirildikten sonra, GetService() yöntemi çağrılırken geçersiz bir işlem istisnası alıyoruz. Buradaki amaç herhangi bir DbSet karşılık gelen DBContext elde etmektir:EF Core RC2 FinaI Sorun: Bu DbContext
public static ObservableCollection<TEntity> Local<TEntity>(this DbSet<TEntity> set)
where TEntity : class
{
var context = set.GetService<DbContext>();
...
}
istisna tam ileti:
Biz etkili bir OnConfiguring veritabanı sağlayıcısını ayarlıyorsunuzyok veritabanı sağlayıcısı bu DBContext için yapılandırıldı. Bir sağlayıcısı, DbContext.OnConfiguring yöntemini geçersiz kılarak veya uygulama hizmeti sağlayıcısında AddDbContext kullanarak yapılandırılabilir. AddDbContext kullanılıyorsa, DbContext türünüzün yapıcınızın yapıcısında bir DbContextOptions nesnesi kabul ettiğinden ve DbContext için temel kurucuyu geçirdiğinden emin olun.
:
protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
base.OnConfiguring(builder);
var connStringBuilder = new SqlConnectionStringBuilder();
connStringBuilder.UserID = "MyUserID";
...
builder.UseSqlServer(connStringBuilder.ConnectionString);
}
Yani mesele yöntemiyle GetService geldiğini görünüyor() verilen DbSet için doğru DBContext örneğini çözme değil ?.
public static ObservableCollection<TEntity> Local<TEntity>(this DbSet<TEntity> set)
where TEntity : class
{
var context = set.GetService<ICurrentDbContext>().Context;
...
}
Not DBContext ait ICurrentDbContext yerine arayüzünün kullanımı: