0

我有以下代码将我的 POCO 插入到 LiteDB 实例中。

这是 POCO:

public class FileTranslationData
{
    public Guid Id { get; set; }
    public string FileLocation { get; set; }
    public string FileJSONLocation { get; set; }
    public int TranslationRetries { get; set; }
    public string TranslationStatus { get; set; }
    public string TranslationId { get; set; }
    public string FileTranslationURL { get; set; }
}

这是将数据插入集合的调用:

public string SaveFileTranslationStatus([FromServices] LiteDbContext db, FileTranslationData data, string Collection)
{
    var files = db.Context.GetCollection(Collection);
    files.Insert(data);
    files.EnsureIndex(x => x.id);
    return null;            
}

files.Insert(data)行抛出错误:

论点 1:无法从“LargeFileDownload.Models.FileTranslationData”转换为“LiteDB.BsonDocument”

我已经阅读了 LiteDB 的文档,它说它可以处理插入 POCO 对象。我还有一个我想发送索引的 ID 字段。我在这里想念什么?

4

1 回答 1

3

好吧,这是一个快速修复,这完全是我的错,但我在这里发布我的答案,以供其他可能犯过同样错误的人使用。这条线

var files = db.Context.GetCollection(Collecton);

需要改为:

var files = db.Context.GetCollection<FileTranslationData>(Collecton);

在不传递集合类型的情况下,它假定一个通用 Bson 文档。输入文档类型后,一切正常。

于 2019-08-05T19:45:24.290 回答