Kann ich die Daten trotzdem in den In-Memory laden, anstatt CSV-Dateien zu verwenden, um Unit-Tests durchzuführen?
Szenario: Ich möchte die Daten in den Arbeitsspeicher laden, um das Effort-Framework zu verwenden, das den falschen dbcontext erstellt und die Operation ausführt. Anstatt Dataloader- und CSV-Dateien zu verwenden, muss ich die Daten programmatisch laden.
Beispielcode, der mit CSV-Dateien funktioniert:
IDataLoader loader = new Effort.DataLoaders.CsvDataLoader("D:\\csv");
var dataLoader = new CachingDataLoader(loader, false);
DbConnection connection = Effort.DbConnectionFactory.CreateTransient(dataLoader);
DbContext mockedDbContext = new NopObjectContext(connection);
EfRepository<Shelf> _shelEfRepository = new EfRepository<Shelf>(mockedDbContext);
EfRepository<ProductVariant> _productVariantEfRepository = new EfRepository<ProductVariant>(mockedDbContext);
EfRepository<Product> _productEfRepository = new EfRepository<Product>(mockedDbContext);
_shelfService = new ShelfService(_shelEfRepository, _productVariantEfRepository, _productEfRepository);
Ich suche nur nach etwas Ersatz, um die Daten zu laden, anstatt die Daten mit .csv-Dateien zu laden
Sie könnten eine transiente / persistente DbConnection
ohne DataLoader erstellen, sie in Ihrem DbContext
und dann programmgesteuert die generierten Daten in den Kontext übertragen.