走進Linq-Linq to SQL How do I(1)

走進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)

系列文章導航:

走進Linq–Linq橫空出世篇

走進Linq-輝煌的背后

走進Linq-Linq大觀園

不能不說的C#特性-對象集合初始化器

不能不說的C#特性-匿名類型與隱式類型局部變量

不能不說的C#特性-擴展方法

不能不說的C#特性-匿名方法和Lambda表達式

不能不說的C#特性-迭代器(上)及一些研究過程中的副產品

不能不說的C#特性-迭代器(下),yield以及流的延遲計算

走進Linq-Linq to Objects(上)基礎篇

走進Linq-Linq to Objects(下)實例篇

走進Linq-Linq to SQL感性認識篇

走進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-How do I(4)拾遺補零篇第一節

走進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

文章列表

發表留言