Извлечение из базы данных в памяти не работает

Я начал использовать Effort для модульного тестирования.

Вот мой код для инициализации:

    private IUnitOfWork unitOfWork;

    [TestInitialize]
    public void SetupTest()
    {
        DbConnection connection = Effort.DbConnectionFactory.CreateTransient();

        var context = new STContext(connection);

        context.Fakturas.Add(new Faktura { ID = 1, FakturaNo = 1000, OwnerID = 1 });
        context.Fakturas.Add(new Faktura { ID = 2, FakturaNo = 1001, OwnerID = 1 });

        context.Products.Add(new Product { ID = 1, Name = "ProductA", Price = 50 });
        context.Products.Add(new Product { ID = 2, Name = "ProductB", Price = 100 });

        context.Orders.Add(new Order { ID = 1, FakturaID = 1, ProductID = 1, Quantity = 1 });
        context.Orders.Add(new Order { ID = 2, FakturaID = 2, ProductID = 1, Quantity = 1 });

        unitOfWork = new UnitOfWork(context);
    }

Затем, когда я отлаживаю тест, я вижу в отладчике, что эти значения из приведенного выше кода есть, они вставляются в базу данных в памяти, но выборочные запросы их не возвращают. Вот изображение из отладчика: введите описание изображения здесь

Это один из запросов, который возвращает 0 элементов return unitOfWork.Context.Products.ToList();

Кто-нибудь знает, что может вызвать проблему?

ОБНОВЛЕНИЕ: Этот код передает: return unitOfWork.Context.Products.Local.ToList<Product>();

ОБНОВЛЕНИЕ 2: я решил это. Сохранение изменений отсутствовало в SetupTest метод:

context.SaveChanges();

0 ответов

Другие вопросы по тегам