Подтвердить что ты не робот

Свойство класса Не включается в качестве столбца базы данных sqlite

У меня есть один класс сущности как

  public class someclass
  {
      public string property1 {get; set;}
      public string property2 {get; set;}
      public string property3 {get; set;}
  }

и используя класс sqlite-соединения obj DB Я создаю таблицу

  Db.CreateTableAsync<someclass>().GetAwaiter().GetResult();

Что я хочу достичь, я не хочу, чтобы sqlite создавал столбец в таблице для property3. Есть ли способ достичь этого?

Я использую библиотеку SQLiteAsync для приложений магазина Windows.

4b9b3361

Ответ 1

Вы можете использовать атрибут Ignore:

public class someclass
{
    public string property1 { get; set; }
    public string property2 { get; set; }
    [Ignore]
    public string property3 { get; set; }
}

Ответ 2

Как сказано ранее в chue x, вы должны использовать атрибут Ignore, но я решил, что я дам немного больше информации о том, что делают все атрибуты, поскольку кажется, что какая-то информация была бы полезной в этом потоке.

Вот краткое описание типов доступных для использования атрибутов (для тех, кто не любит чтение и просто хочет знать быстро):

PrimaryKey. Это свойство является основным ключом таблицы. Поддерживаются только первичные ключи с одним столбцом.

AutoIncrement. Это свойство автоматически создается базой данных при вставке.

Индексировано. Для этого свойства должен быть создан индекс.

MaxLength. Если это свойство является строкой, то MaxLength используется для указания размера varchar max. Максимальная длина по умолчанию - 140.

Игнорировать. Это свойство не будет находиться в таблице.

Если вы хотите узнать больше, ознакомьтесь со своим более подробным сообщением в блоге об этих атрибутах:

http://lukealderton.com/blog/posts/2016/august/sqlite-attributes-and-what-they-do.aspx