Я пытаюсь найти тип данных для DbContextOptionsBuilder.
У меня есть файл DBContext Entity Framework.Я устанавливаю базу данных InMemory с помощью NUnit.Как я могу установить это без вар?Я знаю, что лучше иметь чистую базу данных для каждого теста, но я просто пытаюсь учиться и иметь базу данных для нескольких тестов.
Файл DBContext для электроники
public partial class ElectronicsContext : DbContext
{
public ElectronicsContext()
{
}
public ElectronicsContext(DbContextOptions<ElectronicsContext> options)
: base(options)
{
}
public virtual DbSet<Product> Product { get; set; }
public virtual DbSet<ProductCategory> ProductCategory { get; set; }
Тест NUnit
public class TestClass
{
[SetUp]
public void TestProducts()
{
// This Works
// var context = new DbContextOptionsBuilder<ElectronicsContext>()
// .UseInMemoryDatabase(databaseName: "ProductsTest")
// .Options;
// This does not work
DbContextOptionsBuilder<ElectronicsContext> context = new DbContextOptionsBuilder<ElectronicsContext>()
.UseInMemoryDatabase(databaseName: "ProductsTest")
.Options;
При выполнении этого: я получаю сообщение об ошибке ниже, однако это работает другим способом Moq и настройка контекста БД
[Test]
public void TestProducts()
{
DbContextOptionsBuilder<ElectronicsContext> context = new DbContextOptionsBuilder<ElectronicsContext>()
context.Product.Add(new Product { ProductId = 1, ProductName = "TV", ProductDescription = "TV testing", ImageLocation = "test" });
context.SaveChanges();
Error: 'DbContextOptionsBuilder<ElectronicsContext>' does not contain a definition for 'Product' and no accessible extension method 'Product' accepting a first argument of type 'DbContextOptionsBuilder<ElectronicsContext>' could be found (are you missing a using directive or an assembly reference?)