<a href="http://down.51cto.com/data/99915">[源碼下載下傳]</a>
再接再厲VS 2008 sp1 + .NET 3.5 sp1系列文章索引
介紹
再接再厲VS 2008 sp1 + .NET 3.5 sp1系列文章索引:ADO.NET Entity Framework(實體架構), ADO.NET Data Services(資料服務), Dynamic Data(動态資料)
介紹
以Northwind為示例資料庫,ADO.NET Entity Framework之完全面向對象的添加操作、查詢操作、更新操作和删除操作
ADO.NET Entity Framework(EF) - 就當是微軟的ORM吧,可以将概念模型映射到邏輯模型,進而使用概念模型做開發
Entity - 在EF中就是實體的概念
Entity Data Model(EDM) - 實體資料模型,表現為一組映射到資料源的實體和關系
LINQ to Entities - 和LINQ to XXX一樣,對EF中的實體做LINQ
Entity SQL(ESQL) - 一種類似sql的查詢語言,針對概念模型做查詢
csdl - Conceptual schema definition language 概念架構定義語言
ssdl - Store schema definition language 存儲架構定義語言
msl - Mapping specification language 映射規範語言
csdl, ssdl, msl均為基于XML的語言。.edmx檔案同時包含這3種語言所描述的資訊
Entity - 實體
Entity Class - 實體類。至少要有一個實體鍵(Key Properties)
Entity Set - 實體集。實體集中包含着若幹實體
Association - 關聯。實體類之間的關系。導航屬性就是由關聯來定義的
Association Set - 關聯集。關聯集中包含着若幹關聯
Entity Container - 實體容器。實體容器中包含着若幹實體集和關聯集
概念模型中必須要有實體鍵,實體鍵與表中的主鍵相對應,是以表中必須要有主鍵
存儲模型的字段如果有主鍵鍵或非空限制,則概念模型中必需要有相應的屬性與之映射
概念模型中存在的屬性,必須在存儲模型中有與之映射的字段
作為映射條件的字段不能映射到屬性上
要實作繼承的話,就要使用映射條件來進行篩選
EntityConnection - 與存儲模型的連接配接。相當于SqlConnection
EntityCommand - 對 EDM 執行的指令。相當于SqlCommand
EntityDataReader - 以隻讀、隻進的資料流的方式擷取資料(記憶體中始終隻有一行)。相當于SqlDataReader
以Northwind為示例資料庫,ADO.NET Entity Framework之Linq To Entities
First - 傳回集合中的第一個成員;不延遲
FirstOrDefault - 傳回集合中的第一個成員(找不到則傳回null);不延遲
All - 是否集合中所有成員都滿足某一條件;不延遲
Any - 集合中是否有成員滿足某一條件;不延遲
Average - 取平均值;不延遲
Sum - 求和;不延遲
Max - 取最大值;不延遲
Min - 取最小值;不延遲
Count - 取指定集合的成員數,傳回值類型int;不延遲
LongCount - 取指定集合的成員數,傳回值類型long;不延遲
Take - 擷取集合的前 n 個成員;延遲
Skip - 跳過集合的前 n 個成員;延遲(Linq To Entities 需要先排序才能 Skip)
Distinct - 過濾集合中的相同項;延遲
Union - 連接配接不同集合,自動過濾相同項;延遲
UnionAll - 連接配接不同集合,不會自動過濾相同項;延遲
Concat - 連接配接不同集合,不會自動過濾相同項;延遲
Intersect - 擷取不同集合的相同項(交集);延遲
Except - 從某集合中删除其與另一個集合中相同的項;延遲
Select - 選擇需要傳回的字段
Where - 篩選
OrderBy - 正序排序
OrderByDescending - 倒序排序
ThenBy - 在 OrderBy 或 OrderByDescending 的基礎上再正序排序
ThenByDescending - 在 OrderBy 或 OrderByDescending 的基礎上再倒序排序
GroupBy - 分組
Join - 連接配接
GroupJoin - 連接配接後分組
以Northwind為示例資料庫,ADO.NET Entity Framework之詳解EntityClient, ObjectQuery
EntityConnection - 與存儲模型的連接配接
EntityCommand - 對 EDM 執行的指令
EntityParameter - 配置 EntityCommand 的參數
ObjectQuery<T> - 通過 Entity SQL 或 查詢文法 或 Linq 方法對概念模型做查詢
ObjectContext.CreateQuery<T>(Entity SQL) - 根據 esql 建立一個 ObjectQuery<T> 。(延遲)
以Northwind為示例資料庫,ADO.NET Entity Framework之詳解ObjectContext, 以及事務和并發
ObjectContext - 以對象(這些對象是 EDM 中定義的實體類型的執行個體)的形式與資料進行互動
CreateObjectName - 實體類 的 CreateObjectName 靜态方法用于建立實體類的新執行個體
AddToEntitySetName() - 将需要添加的對象添加到對象上下文中
SaveChanges() - 将所有更新儲存到相關存儲區中
Attach()/AttachTo() - 附加外部實體到上下文中
ObjectContext.Refresh() - 更新上下文資料
ObjectStateEntry - 維護實體狀态的類
ObjectStateManager - 實體狀态管理器
以Northwind為示例資料庫,ADO.NET Entity Framework之詳解Entity SQL
Linq 方法上也可以使用 esql
查詢表達式
select, from, where, order by, group by, having
cross join, inner join, left outer join, right outer join, full outer join
case when then else end
集合運算符
anyelement(expression) - 從集合中提取任意元素
except - 從左側表達式的結果中删除其與右側表達式結果中的相同項,并傳回此結果
flatten(collection) - 将多個集合組成的集合轉換為一個集合
intersect - 傳回運算符兩側查詢結果的相同項
[not] exists(expression) - 确定查詢結果是否存在
[not] in {,} - 确定某值是否在某集合中
overlaps - 确定運算符兩側查詢結果是否具有相同項
set(expression) - 移除重複項
union - 将運算符兩側查詢結果連接配接成一個集合(移除重複項)
union all - 将運算符兩側查詢結果連接配接成一個集合(包括重複項)
top(n) - 取前 n 條記錄
分頁運算符
skip n - 需要跳過的項數,結合 order by 使用
limit n - 需要選擇的項數,結合 order by 使用
類型運算符
cast(expression as data_type) - 将表達式轉換為另一種資料類型(使用 EntityCommand 執行查詢,傳回 EDM 類型;使用 ObjectQuery 執行查詢,傳回 CLR 類型)
oftype - 從查詢表達式傳回指定類型的對象集合,需 EDM 中繼承關系的支援
is of - 确定表達式的類型是否為指定類型或指定類型的某個子類型,需 EDM 中繼承關系的支援
treat - 将指定基類型的對象視為指定派生類型的對象,需 EDM 中繼承關系的支援
常用運算符
算術運算符
+
-(減或負)
*
/
%
比效運算符
>, >=, <, <=, <>, !=
is null, is not null
between and, not between and
like, not like
通配符(應用于 like 和 not like)
% - 零個或零個以上的任意字元
_ - 任意單個字元
[] - 在指定範圍 [a-f] 或集合 [abcdef] 中的任意單個字元
[^] - 不在指定範圍 [^a-f] 或集合 [^abcdef] 中的任意單個字元
邏輯運算符
and, &&
or, ||
not, !
其他字元
-- - 注釋
. - 成員通路
; - 分行
+ - 串聯字元串
函數
函數 - 聚合函數
Avg(expression) - 非 null 的平均值
Count(expression) - 記錄總數(Int64)
BigCount(expression) - 記錄總數(Int32)
Max(expression) - 非 null 的最大值
Min(expression) - 非 null 的最小值
Sum(expression) - 非 null 的總和值
StDev(expression) - 非 null 的标準偏內插補點(相對于平均值的标準偏差)
函數 - 數學函數
Abs(value) - 取絕對值
Ceiling(value) - 取不小于參數的最小整數
Floor(value) - 取不大于參數的最大整數
Round(value) - 取參數的整數部分
函數 - 字元串函數
Left(string, length) - 從左側開始,取 string 的前 length 個字元
Right( tring, length) - 從右側開始,取 string 的前 length 個字元
LTrim(string) - 去掉 string 的左側的空白
RTrim(string) - 去掉 string 的右側的空白
Trim(string) - 去掉 string 的兩側的空白
ToLower(string) - 将 string 全部轉換為小寫
ToUpper(string) - 将 string 全部轉換為大寫
Concat(string1, string2) - 串聯 string1 和 string2
Replace(string1, string2, string3) - 将 string1 中的所有 string2 都替換為 string3
Reverse(string) - 取 string 的反序
Substring(string, start, length) - 從 string 的 start 位置開始取 length 個字元,索引從 1 開始
IndexOf(string1, string2) - string1 在 string2 中的位置,索引從 1 開始,若找不到則傳回 0
函數 - 日期和時間函數
Year(expression) - 取時間的年的部分
Month(expression) - 取時間的月的部分
Day(expression) - 取時間的日的部分
Hour(expression) - 取時間的時的部分
Minute(expression) - 取時間的分的部分
Second(expression) - 取時間的秒的部分
Millisecond(expression) - 取時間的毫秒的部分(0 - 999)
CurrentDateTime() - 取伺服器的目前時間
CurrentUtcDateTime() - 取伺服器的 UTC 目前時間
CurrentDateTimeOffset() - 傳回值類型為 DateTimeOffset , 取目前時間及相對于 UTC 時間的內插補點
函數 - 按 位 運算的函數
BitWiseAnd(value1, value2) - 取 value1 和 value2 的位與結果
BitWiseOr(value1, value2) - 取 value1 和 value2 的位或結果
BitWiseXor(value1, value2) - 取 value1 和 value2 的位異或結果
BitWiseNot(value) - 取 value 的位求反結果
函數 - 其它函數
NewGuid() - 傳回新生成的 GUID
不常用運算符
row, multiset, createref, deref, key, ref, navigate
以Northwind為示例資料庫,示範ADO.NET Data Services(資料服務)
DataService - ADO.NET 資料服務的主入口點。 T 為資料源類名
IDataServiceConfiguration.SetEntitySetAccessRule(string name, EntitySetRights rights) - 為指定實體集設定通路規則
QueryInterceptorAttribute - 聲明在方法上的查詢攔截器
DataServiceContext - 資料服務的上下文
DataServiceQuery - 以指定的 URI 文法查詢資料服務
以Northwind為示例資料庫,示範Dynamic Data(動态資料)
MetaModel - 資料庫和域對象之間的映射的抽象
MetaModel.RegisterContext() - 使用指定的配置上下文注冊指定的資料上下文
Scaffold - 譯為基架。即基于資料庫架構(linq to sql 或 entity framework)生成網頁模闆的機制
ScaffoldTableAttribute(false) - 隐藏指定的表
ScaffoldColumn(false) - 隐藏指定的字段
MetadataTypeAttribute(Type metadataClassType) - 指定要與資料模型類關聯的中繼資料類
DynamicField - 顯示指定的動态資料字段,相當于 BoundField
DynamicControl - 通過指定的字段模闆顯示指定的動态資料字段
OK
本文轉自webabcd 51CTO部落格,原文連結:http://blog.51cto.com/webabcd/341154,如需轉載請自行聯系原作者