Как установить значение по умолчанию для столбца в SQLite с помощью SQLite-net?

Я импортирую код Android в Windows RT и мне нужно, чтобы данные были совместимы в обоих приложениях. При создании базы данных sqlite мне нужно установить значение по умолчанию для столбца, делая что-то вроде

CREATE TABLE [blabla] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, [bleh] INTEGER NOT NULL DEFAULT -1 )

Я написал свой код на C#, используя SQLite-net следующим образом:

[Table("blabla")]
public class Blabla {
    [PrimaryKey, AutoIncrement, NotNull]
    public int id { get; set; }

    [NotNull]
    public int bleh { get; set; }
}

Но я не могу установить значение по умолчанию "bleh". Мне нужно, чтобы обе базы данных были одинаковыми =/ Кто-нибудь может мне помочь с этим?

Спасибо =)

2 ответа

Решение

До тех пор, пока я не получил ответ, я просто создал всю базу данных, используя операторы SQL, поэтому мой код на C# не требует создания базы данных. Работает нормально!

Почему вы не используете:

    private int _bleh = 1;
    [NotNull]
    public int Bleh
    {
        get { return _bleh; }
        set { _bleh = value; }
    }

Тогда bleh всегда будет иметь значение по умолчанию 1, если не изменено

Я знаю, что уже поздно, но, может быть, это поможет кому-то вроде меня. ЕслиDefault поддерживается вашим SQLite, тогда используйте Default атрибут

[Table("blabla")]
public class Blabla {
    [PrimaryKey, AutoIncrement, NotNull]
    public int id { get; set; }

    [NotNull,Default(value:1)]
    public int bleh { get; set; }
}

Если Default не поддерживается вашим SQLite, вы можете просто назначить значение по умолчанию следующим образом:

 [Table("blabla")]
    public class Blabla {
        [PrimaryKey, AutoIncrement, NotNull]
        public int id { get; set; }

        [NotNull]
        public int bleh { get; set; } = 1;
    }

Я всегда предпочитаю второй путь.

Другие вопросы по тегам