web-dev-qa-db-ja.com

クラスプロパティsqliteデータベース列として含まれていません

私は1つのエンティティクラスを持っています

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

sqlite接続クラスobjDBを使用してテーブルを作成しています

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

私が達成したいのは、sqliteがproperty3のテーブルに列を作成したくないということです。これを達成する方法はありますか?

WindowsストアアプリにSQLiteAsyncライブラリを使用しています。

23
Shafqat Masood

Ignore属性を使用できます。

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

Chue xが以前に言ったように、Ignore属性を使用する必要がありますが、このスレッドで役立つ情報のように見えるので、すべての属性が何をするかについてもう少し情報を提供すると思いました。

使用可能な属性のタイプの簡単な要約を次に示します(読むのが好きではなく、すぐに知りたい人のために):

PrimaryKey-このプロパティはテーブルの主キーです。単一列の主キーのみがサポートされています。

AutoIncrement-このプロパティは、挿入時にデータベースによって自動的に生成されます。

Indexed-このプロパティには、インデックスを作成する必要があります。

MaxLength-このプロパティが文字列の場合、MaxLengthを使用してvarcharの最大サイズを指定します。デフォルトの最大長は140です。

Ignore-このプロパティはテーブルに含まれません。

詳細を知りたい場合は、これらの属性に関する私のより詳細なブログ投稿を確認してください。

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

9
Luke Alderton