走進Linq-Linq to SQL How do I(1)
作者: 橫刀天笑 來源: 博客園 發布時間: 2008-09-23 18:57 閱讀: 14088 次 推薦: 2 原文鏈接 [收藏]
[1] 走進Linq-Linq to SQL How do I(1)
[2] 走進Linq-Linq to SQL How do I(1)
[3] 走進Linq-Linq to SQL How do I(1)
[4] 走進Linq-Linq to SQL How do I(1)
[5] 走進Linq-Linq to SQL How do I(1)
系列文章導航:
不能不說的C#特性-迭代器(下),yield以及流的延遲計算
走進Linq-Linq to SQL How do I(1)
走進Linq-Linq to SQL How do I(2)
走進Linq-Linq to SQL How do I(3)
走進Linq-Linq to SQL源代碼賞析 Table的獲取過程
走進Linq-Linq to SQL源代碼賞析之Provider的初始化
走進Linq-Linq to SQL源代碼賞析,通過Linq to SQL看Linq
How Do I第一篇,難度系數50,定位為入門級。
上一篇對Linq to SQL做了一個大致的介紹,從這一篇起,將對要完成一項Linq to SQL的Case要做的一些事情,主要從細節上做一些講解。不會很深入,但是卻又是必須的。為了使講解不落于泛泛而談,我們首先來構建實例:
還是以博客園的系統為例子,既然稱Linq to SQL為一個ORM框架,ORM,對象-關系 映射,既然O在前關系在后,說明O為重,關系是根據O得來的,那么我們就先新建一些Entity Object吧。在一個博客系統里最常見的就是User,Blog,Post。
一個用戶有且僅有一個博客,而一個博客可以有零篇或者多篇博客文章。根據這個描述我們來建立Entity:
Step 1 建立實體對象
![]()
User

/**////
/// 用戶類
///
public class User


{

/**////
/// 用戶標識
///

public int Id
{ get; set; }

/**////
/// 該用戶對應的博客,
/// 一個用戶有且僅有一個博客
///

public Blog Blog
{ get; set; }

/**////
/// 用戶名
///

public string UserName
{ get; set; }

/**////
/// 密碼
///

public string Password
{ get; set; }

/**////
/// 昵稱
///

public string NickName
{ get; set; }

/**////
/// 用戶離開時間
///

public DateTime LeaveTime
{ get; set; }
}

![]()
Blog

/**////
/// 博客類
///
public class Blog


{

/**////
/// 博客標識
///

public int Id
{ get; set; }

/**////
/// 用戶標識,和用戶相關聯
///

public int UserId
{ get; set; }

/**////
/// 博客的中文名
///

public string Name
{ get; set; }

/**////
/// 創建時間
///

public DateTime CreateDate
{ get; set; }

/**////
/// 一個博客有零篇或多篇文章
///

public IList<Post> Posts
{ get; set; }
}
![]()
Code

/**////
/// 博客文章類
///
public class Post


{

/**////
/// 文章Id
///

public int Id
{ get; set; }

/**////
/// 文章從屬的博客
///

public int BlogId
{ get; set; }

/**////
/// 標題
///

public string Title
{ get; set; }

/**////
/// 內容
///

public string Body
{ get; set; }

/**////
/// 發表時間
///

public DateTime CreateDate
{ get; set; }
}
我們先不要談論這個設計是否合理,也不要談論這三個實體是貧血模型還是充血模型。
對象建立好了,我們來建設數據庫表吧:users表,blogs表,posts表(為什么表都用復數?從Rails里學過來的,ActiveRecord模式里,表里每條記錄都對應著一個對象,所以表用復數表示,這是一種約定)
Step 2:創建數據庫表
Users表:

Blogs表:

Posts表:

我們注意到,用戶類里的LeaveTime離開時間在數據庫里并沒有對應的字段,因為這個是用來臨時記路用戶離開離開博客園的時間的,這樣可以用來做一些在線統計,所以無需持久化。
繼續>>下一頁
[第1頁][第2頁][第3頁][第4頁][第5頁]
2
0
請先登錄 提交中…
標簽:LINQ LINQ to SQL