У меня есть коллекция файлов JSON в локальной папке, которую я хочу использовать для заполнения, где имена файлов являются именами коллекций. Каждый файл представляет собой json-массив указанного типа. У меня есть класс, метод которого (ниже) создает базу данных для заполнения, перебирая каждый найденный файл, десериализуя массив как BsonDocument, который я нашел в одном из ответов mbdavid:
Код: Выделить всё
public async Task SeedDbAsync(LiteDatabase db)
{
var mapper = SetMappings();
using (db = new LiteDatabase(_options.Filename))
{
foreach (var path in _paths)
{
var json = await _fileMap.GetFileAsync(path);
var doc = JsonSerializer.DeserializeArray(json).Select(x => x.AsDocument);
db.GetCollection(path.Name).InsertBulk(doc);
}
}
return db;
}
Затем я заметил, что могу упростить это, используя LiteDb для чтения json непосредственно из файла, примерно так:
Помимо меньшего количества строк кода, есть ли у этого пути какие-либо другие преимущества или недостатки?
Я пробовал начальный метод.
Подробнее здесь:
https://stackoverflow.com/questions/790 ... abase-is-b