Question

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.

Was it helpful?

Solution

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; }
}

OTHER TIPS

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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top