
我使用了簡單的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
(有錯請留言更正,多多指教)
沒有留言:
發佈留言