Я пытаюсь добавить контекст к моей коллекции сервисов с помощью:
serviceCollection.AddDbContext<MyContext>(options => options.UseSqlServer("My connection string"));
, чуть позже я выполняю запрос, получая экземпляр контекста:
var context = serviceProvider.GetService<MyContext>();
var user = context.Users.FirstOrDefault(u => u.UserName == userName);
, который выдает ошибку:
System.NullReferenceException: 'Ссылка на объект не установлена для экземпляра объекта.'
Странно, но ни пользователь DbSet
не имеет значения , Когда я отлаживаю предоставленный контекст, я вижу, что оба свойства ChangeTracker
и Model
в экземпляре контекста выдавали следующую ошибку:
'context.ChangeTracker' вызвал исключение типа 'System .InvalidOperationException '
Когда я заменяю AddDbContext
на AddSingleton
экземпляром, сделанным так:
var optionBuilder = new DbContextOptionsBuilder<MyContext>().UseSqlServer("My connetion string");
var context = new MyContext(optionBuilder.Options);
serviceCollection.AddSingleton(context);
все работает отлично.
I использую зависимость Microsoft в .ll-проекте. NET Framework 4.6.1, на который ссылается консольное приложение. NET Core 2.1, которое просто выполняет код в dll.