一隻大菜鳥,最近要學習windows phone資料庫相關的知識,找到了一些比較簡短的教程進行學習,由於是英文的,順便給翻譯了。本身英語水平就不好,估計文中有不少錯誤,如果有不幸讀到的童鞋請保持對翻譯品質的質疑,多多指教。
這是原文地址:http://www.windowsphonegeek.com/tips/Windows-Phone-Mango-Local-Database-SQL-CE--Column-attribute
本文如下:
這是“windows phone mango本機資料庫(sqlce)”系列短片文章的第四篇。 為了讓你開始在Windows Phone Mango中使用資料庫,這一系列短片文章將覆蓋所有你需要知道的知識點。我將談談在windows phone mango本機資料庫時使用[Column] attribute。
首先,要說到的是,windows phone 7.1上的資料庫功能是SQL Compact關於Mango的一個實現。你將使用linq to sql訪問儲存在資料庫上的資料。1、[Column] attribute是什麼 除了關聯類別到表上(之前的文章有解釋過),你需要指示每一個你打算關聯到資料表列的欄位或屬性。為此,LINQ to SQL提供了[Column] attribute。 Column attribute的各種屬性,你可以精確地用來自訂欄位或屬性與資料表列之間的映射。值得注意的一個屬性是IsPrimaryKey。它告訴LINQ to SQL表中的資料表列是主鍵的一部分。
參考:你可以看看MSDN的文檔http://msdn.microsoft.com/zh-cn/library/system.data.linq.mapping.columnattribute.aspx 只有欄位和屬性聲明為column會被持久化,或者從資料庫中檢索。其他的將被認為是你的應用程式邏輯的短暫部分。2、怎麼使用[Column] attribute
注釋:1、在屬性上使用逗號來分隔多個屬性2、只能在一個類中使用Column attribute標記到[table]attribute上。(這個句子實在不太會翻譯,原文是The Column attribute must be used only in a class marked with the [Table] attribute.)
1 [Table] 2 public class City 3 { 4 ... 5 [Column(IsPrimaryKey = true)] 6 public int ID 7 { 8 get; 9 set;10 }
樣本1:Column是主鍵
1 [Column(IsPrimaryKey = true, IsDbGenerated = true)]2 public int ID3 {4 get;5 set;6 }
注釋:上面的程式碼片段中,除了IsPrimaryKey屬性之外,我們也可以設定IsDbGenerated 屬性為true。 這告訴SQLCE runtime這個列上的值應該自動增加,這在大部分時間裡是有用的。如果你需要的話,你當然可以自己產生主索引值。在這種情況下,你只需要將IsDbGenerated 屬性設定成預設值或者false。樣本2:Column接受空值
1 [Column(CanBeNull = false)]2 public string Name3 {4 get;5 set;6 }
這篇文章我談了有關在windows phone mango本機資料庫中使用[Column] attribute。請繼續關注接下來的文章。