Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Class Property Not be included as sqlite database column

I have one entity class as

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

and using sqlite connection class obj DB I am creating the table

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

What I want to achieve is, I don't want sqlite to create column in the table for property3. Is there any way to achieve this?

I am using SQLiteAsync library for windows store apps.

like image 341
Shafqat Masood Avatar asked May 06 '13 12:05

Shafqat Masood


2 Answers

You can use the Ignore attribute:

public class someclass
{
    public string property1 { get; set; }
    public string property2 { get; set; }
    [Ignore]
    public string property3 { get; set; }
}
like image 173
chue x Avatar answered Nov 09 '22 18:11

chue x


As chue x has said previously, you should use the Ignore attribute, but I figured I would give a bit more information as to what all the attributes do since it seems like some information that would be useful in this thread.

Here's a quick summary of the types of attributes available for use (for those of you that don't like reading and just want to know quickly):

PrimaryKey - This property is the primary key of the table. Only single-column primary keys are supported.

AutoIncrement - This property is automatically generated by the database upon insert.

Indexed - This property should have an index created for it.

MaxLength - If this property is a String then MaxLength is used to specify the varchar max size. The default max length is 140.

Ignore - This property will not be in the table.

If you want to know more, check out my more in depth blog post on these attributes:

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

like image 11
Luke Alderton Avatar answered Nov 09 '22 18:11

Luke Alderton