Windows Phone本機資料庫(SQLCE):5、[Association]attribute(翻譯)

來源:互聯網
上載者:User

   一隻大菜鳥,最近要學習windows phone資料庫相關的知識,找到了一些比較簡短的教程進行學習,由於是英文的,順便給翻譯了。本身英語水平就不好,估計文中有不少錯誤,如果有不幸讀到的童鞋請保持對翻譯品質的質疑,多多指教。

   這是原文地址:http://windowsphonegeek.com/tips/Windows-Phone-Mango-Local-Database-SQL-CE--Association-attribute

本文如下:

   這是“windows phone mango本機資料庫(sqlce)”系列短片文章的第五篇。 為了讓你開始在Windows Phone Mango中使用資料庫,這一系列短片文章將覆蓋所有你需要知道的知識點。 我將談談在windows phone mango本機資料庫時使用[Association] attribute。

   首先、要說到的是,windows phone 7.1上的資料庫功能是SQL Compact關於Mango的一個實現。你將使用linq to sql訪問儲存在資料庫上的資料。

1、 [Association] attribute 是什麼   在LINQ to SQL中實體類之間的關聯類別似於在資料庫中表之間的關聯。   [Association] attribute用於指定在資料庫中的一個屬性來表示關聯。例如一個外鍵到主鍵的關係。你也可以表示一對一或多對多的關係。
  • 一對一:在關聯的兩端使用包含屬性的EntitySet<TEntity>類型表示這種關係。
  • 多對多:在多對多關係中,鏈表(也叫連接表)的主鍵,通常形成其他兩個表複合的一個外鍵。
參考:你可以查看這裡:http://msdn.microsoft.com/zh-cn/library/system.data.linq.mapping.associationattribute.aspx 2、怎麼使用[Association] attribute   關聯指定使用  [Association] attribute,這允許你在資料庫映射中兩個類型間配置關係。    [Association] attribute有下面幾個重要屬性:
  • OtherKey-屬性的名稱對應關聯的另一端對象的id(擷取或設定在關聯的另一端上作為索引值的、目標實體類的一個或多個成員)
  • ThisKey-對於這種類型,屬性的名字與外鍵相對應(擷取或設定表示關聯的此端上的索引值的此實體類成員)
  • Storage-這屬性支援變數(擷取或設定用來儲存列中的值的私人儲存欄位。)
注釋:括弧內是MSDN上面的解釋 一對多複合關聯 樣本1:
 1 [Table] 2 public class Country 3 { 4     ... 5   6   private EntitySet<City> citiesRef; 7    8     [Association(Name = "FK_Country_Cities", Storage = "citiesRef", ThisKey = "ID", OtherKey = "CountryID")] 9     public EntitySet<City> Cities10     {11         get12         {13             return this.citiesRef;14         }15     }16 ...17  18 }

注釋:在上面的程式碼片段中,citiesRef 支援EntitySet<City>類型的變數,因為citiesRef 是“一對多”關聯的“多”這一邊的。

樣本2:

 1 [Table] 2 public class City 3 { 4    //... 5   6     private EntityRef<Country> countryRef = new EntityRef<Country>(); 7   8   9     [Association(Name = "FK_Country_Cities", Storage = "countryRef", ThisKey = "CountryID", OtherKey = "ID", IsForeignKey = true)]10     public Country Country11     {12         get13         {14             return this.countryRef.Entity;15         }16         set17         {18             Country previousValue = this.countryRef.Entity;19             if (((previousValue != value) || (this.countryRef.HasLoadedOrAssignedValue == false)))20             {21                 if ((previousValue != null))22                 {23                     this.countryRef.Entity = null;24                     previousValue.Cities.Remove(this);25                 }26                 this.countryRef.Entity = value;27                 if ((value != null))28                 {29                     value.Cities.Add(this);30                     this.countryID = value.ID;31                 }32                 else33                 {34                     this.countryID = default(Nullable<int>);35                 }36             }37         }38     }39 //...40  41 }

注釋:在上面的程式碼片段中,countryRef 支援EntityRef<Country>類型的變數,因為citiesRef 是“一對多”關聯的“一”這一邊的。

   你也可以參考這裡http://www.windowsphonegeek.com/articles/Windows-Phone-Mango-Local-Database-mapping-and-database-operations

 

   這篇文章我談了有關在windows phone mango本機資料庫中使用[Association] attribute。請繼續關注接下來的文章。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.