Невозможно сохранить и получить данные из LiteDb - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь записать один объект в LiteDb и прочитать его. Я пробовал следующий код, но каким-то образом все параметры объекта LiteDbParamEntry возвращаются как NULL или ноль.

public class LiteDbParamEntry
{
    [BsonId]
    public int Id
    {
        get { return (Index * 0x100) + SubIndex; }
    }

    public ushort Index;

    public ushort SubIndex;

    public string Text;
}

public class LiteDbParamValueStorage
{
    private const string _liteDbPath = "MyLiteData.db";

    public LiteDbParamValueStorage()
    {
        WriteEntry(123, 25);
        ReadEntry(123, 25);
    }

    public void WriteEntry(ushort index, ushort subIndex)
    {
        using (var db = new LiteDatabase(_liteDbPath))
        {
            var entry = new LiteDbParamEntry {Index = index, SubIndex = subIndex, Text = "SomeText"};

            var entries = db.GetCollection<LiteDbParamEntry>("LiteDbParamEntry");

            entries.Insert(entry);
        }
    }

    public void ReadEntry(ushort index, ushort subIndex)
    {
        using (var db = new LiteDatabase(_liteDbPath))
        {
            var collection = db.GetCollection<LiteDbParamEntry>("LiteDbParamEntry");
            var paramEntry = collection.FindById((index * 0x100) + subIndex);
            if (paramEntry != null)
                Console.WriteLine(paramEntry.Text);          //paramEntry.Text is returned as Null
            else
                return;
        }
    }
}

Может ли кто-нибудь указать мне правильное направление?

1 Ответ

2 голосов
/ 14 июля 2020

Наконец, я обнаружил, что не так с вашим кодом ... Вы забыли добавить инструкцию { get; set; } в правой части объявления поля;)

Взгляните сюда:

public class LiteDbParamEntry
{
    [BsonId]
    public int Id
    {
        get { return (Index * 0x100) + SubIndex; }
    }

    public ushort Index { get; set; } //getter/setter added

    public ushort SubIndex  { get; set; } //getter/setter added

    public string Text  { get; set; } //getter/setter added
}

Удачи!

...