Linq數(shù)據(jù)和對(duì)象淺談
在向大家詳細(xì)介紹Linq數(shù)據(jù)和對(duì)象之前,首先讓大家了解下linq就主要是解決數(shù)據(jù)不等對(duì)象而產(chǎn)生,然后全面介紹Linq數(shù)據(jù)和對(duì)象。
大家知道在開(kāi)發(fā)數(shù)據(jù)時(shí),數(shù)據(jù)一般是關(guān)系型數(shù)據(jù),然而數(shù)據(jù)和對(duì)象是什么關(guān)系?linq就主要是解決數(shù)據(jù)不等對(duì)象而產(chǎn)生。有了Linq數(shù)據(jù)和對(duì)象之間就可以有一個(gè)一一對(duì)應(yīng)的關(guān)系了。而且這些是可以根據(jù)數(shù)據(jù)庫(kù)生成這種影射的代碼,也可以根據(jù)影射代碼生成數(shù)據(jù)庫(kù)。就是說(shuō),數(shù)據(jù)庫(kù)和影射代碼實(shí)現(xiàn)了相互轉(zhuǎn)化。
先添加Linq to SQL 類,命名為Northwind.dbml,然后再該類添加一數(shù)據(jù)表Customers
從圖的Northwind.designer.cs文件可以看到
- [System.Data.Linq.Mapping.DatabaseAttribute(Name="Northwind")]
- public partial class NorthwindDataContext : System.Data.Linq.DataContext
- {
- [Table(Name="dbo.Customers")]
- public partial class Customers : INotifyPropertyChanging, INotifyPropertyChanged
- {
- private static PropertyChangingEventArgs
emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);- private string _CustomerID;
可以看到NorthwindDataContext是必須從DataContext 類繼承,這樣就獲得Linq的支持。
- private void Form1_Load(object sender, EventArgs e)
- {
- NorthwindDataContext db = new NorthwindDataContext();
- var c = from p in db.Customers
- select p;
- dataGridView1.DataSource = c;
- }
運(yùn)行效果圖:
以上介紹Linq數(shù)據(jù)和對(duì)象
【編輯推薦】