У меня есть модель, которая имеет свойство List<string>
:
public class SignalDoc_Header_NamedMeasures
{
public ObjectId Id { get; set; }
public string Type { get; set; }
public string SignalName { get; set; }
public string Filename { get; set; }
public DateTime DateStart { get; set; }
public DateTime DateEnd { get; set; }
public List<string> HeaderLines{ get; }
public SignalDoc_Header_NamedMeasures()
{
HeaderLines = new List<string>();
}
}
Анализатор файлов данных заполнит модель и сохранит ее в коллекции
var dataHeader = new SignalDoc_Header_NamedMeasures
{
Type = "Foo",
SignalName = "xyzzy",
Filename = fi.FullName,
};
…
// read through top part of a tricky text file to header line section
dataHeader.HeaderLines.Add(line); // save the header line, other files might have multiple header lines.
…
// parse file, tracking first and last timestamp of detail records
…
dataHeader.DateStart = dateStart;
dataHeader.DateEnd = dateEnd;
…
string collectionName = … some function of filename … ;
DropCollection(collectionName); // helper method
var h = AppDb.GetCollection<SignalDoc_Header_NamedMeasures>(collectionName);
await h.InsertOneAsync(dataHeader);
The InsertOneAsync
работает, но вставленный документ не содержит массив для HeaderLines
.Я использую Compass Community, чтобы посмотреть на базу данных.
Q: Что отсутствует или препятствует сохранению List<string>
в виде массива?
В других местах AppDb
устанавливается как
static MongoClient Client { get; set; }
static IMongoDatabase AppDb { get; set; }
static async Task<int> Main(string[] args)
{
try {
Client = new MongoClient($"mongodb://{ConnectionParameters}");
} catch (Exception e)
{
Console.WriteLine(e.Message);
Environment.Exit(-1);
}
AppDb = Client.GetDatabase(DatabaseName);