我使用了簡單的NorthWind Access DB ,為"Customers"的Table 建立一個Class檔案:
class DCClass { // 取得Customers的Table , 進行Table Mapping [Table(Name = "Customers")] public class CustomerDC { // Column : CustomerID [Column(IsPrimaryKey = true)] public string CustomerID { get; set; } // Column : Name 並轉成 ContactName [Column(Name = "ContactName")] public string Name { get; set; } // Column : City [Column] public string City { get; set; } } }
在程式中,我就可以使用這個Class了,以Button為例 :
private void button2_Click(object sender, EventArgs e) { //建立IDbConnection IDbConnection MyConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Nwind.mdb;User Id=admin;Password=;"); //建立dc為新的DataContext DataContext dc = new DataContext(MyConnection); //建立EntityType的Customers 並取得DCClass中的CustomerDC結構 Table<dcclass.customerdc> Customers = dc.GetTable<dcclass.customerdc>(); //可以直接使用LinQ語法去做Query了 DataGridView1.DataSource = from c in Customers where c.CustomerID.StartsWith("A") select new { MyCustomerID = c.CustomerID, MyCustomerName = c.Name, MyCity = c.City }; }
以上就是基本的DataClass , DataContext , LinQ的示範,但試想下,假如你的Database有廿多個Table,每個Table就有十多個Column的話,可以想像編寫DataClass是十分花時間的。 下一次,我就會示範如何使用LinQ to SQL Designer快速地建立Data Class。
作者 : 達Ming
最後更新 : 13-3-2008
原創文章 - 轉貼時請註明出處 : http://tatmingstudio.blogspot.com/2008/03/linq-data-class-data-context.html
(有錯請留言更正,多多指教)
沒有留言:
發佈留言