2013-05-06 16 views
12

我有一個實體類作爲類屬性不被包括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 Store應用程序。

+0

我認爲你不能因爲沒有方法使用的列名來創建表。現在我們只需要一個方法來傳遞類名作爲參數。 – Xyroid 2013-05-06 12:20:00

回答

30

可以使用Ignore屬性:

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

接受你的回答謝謝 – 2013-05-06 13:26:57

+0

你如何定義兩個表之間的關係? http://stackoverflow.com/questions/16539683/relational-sqlite-on-windows-rt – hendrix 2013-05-14 13:06:35

+4

非常感謝你們。這是2016年,你的回答肯定幫了我。 – codeshinobi 2016-04-19 12:11:05

6

隨着柱先生X此前曾表示,你應該使用忽略屬性,但我想我會給出一個有點作爲,因爲什麼所有的屬性做的更多信息它似乎有些信息會在這個線程中有用。

這裏的類型可使用屬性的快速摘要(對於那些你不喜歡讀書,只是想快速的瞭解):

的PrimaryKey - 這個屬性的主鍵桌子。只支持單列主鍵。

自動增量 - 此屬性由插入時由數據庫自動生成。

索引 - 該屬性應該爲其創建索引。

MaxLength - 如果此屬性是字符串,則使用MaxLength指定varchar max大小。默認最大長度爲140.

忽略 - 此屬性不在表格中。

如果您想了解更多,請參閱我的更深入的博客文章對這些屬性:

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