介绍EF提供的3中查询方式
来源:互联网 发布:vmware 安装mac os x 编辑:程序博客网 时间:2024/05/16 11:40
這邊簡單介紹一下,ADO.Net Entity Framework 提供的三種查詢方式,
- Linq to Entities
- Query Builder Mothed
- Entity SQL Language
【Linq to Entities】
Linq to Entities 是最常見的語法,也是用最多的,
來看一個範例
1
////示範 Linq to Enities
2
using
(TestEntities te =
new
TestEntities())
3
{
4
var user = from a
in
te.User
5
where a.UserDepartment.UserDepartment_name ==
"經理部"
6
orderby a.User_id
7
select a;
8
}
語法是不是跟TSQL語法很像呢,
再來看另一種寫法,改用【Lambda】
1
////示範 Linq to Enities 改用 Lambda方式
2
using
(TestEntities te =
new
TestEntities())
3
{
4
var user = te.User.Where(a => a.UserDepartment.UserDepartment_name ==
"經理部"
)
5
.OrderBy(a => a.User_id)
6
.Select(a => a);
7
}
兩個範例執行完的結果都一樣,我個人是都採用Lambda的方式撰寫。
【Query Builder Mothed】
直接來看範例比較容易了解
1
////示範 Query Builder Mothed
2
using
(TestEntities te =
new
TestEntities())
3
{
4
var user = te.User.Where(
"it.UserDepartment.UserDepartment_name == \"經理部\""
)
5
.OrderBy(
"it.User_id"
);
6
}
在查詢時,可以將要查詢的條件、欄位等語法,利用字串方式傳入,
透過Query Builder Mothed執行。
比較特別的是字串中的 "it" ,是保留字,代表自己。
【Entity SQL Language】
擷取一段 MSDN 上的說明,來解釋甚麼是 Entity SQL Language
” Entity SQL Language 是與 SQL 類似且與儲存體無關的語言。Entity SQL 的設計目標是用來查詢及管理以 實體資料模型 (EDM) 為基礎之物件的豐富物件圖形。”
簡單說 我們可以利用 Entity SQL Language 來執行查詢,"只有查詢唷",不支援更新、新增、刪除等動作,
為什麼要有 Entity SQL Language以及如何使用、跟一般TSQL差異等議題,在找機會來介紹,
這邊先簡單看一下示範語法
1
////示範 Entity SQL Language
2
using
(TestEntities te =
new
TestEntities())
3
{
4
string
entitySQL =
"SELECT Value a FROM User as a"
;
5
entitySQL +=
" WHERE a.UserDepartment.UserDepartment_name == \"經理部\""
;
6
entitySQL +=
" Order by a.User_id"
;
7
var user = te.CreateQuery<User>(entitySQL);
8
}
上面的範例的執行結果都是一樣的,
我們來簡單做一下總結
比較
Linq to EntitiesQuery Builder MothedEntity SQL LanguageIntelliSence0XX設計時期除錯OXX動態查詢XOO對Provider產生的SQL語法控制一般較好最好支援的函式一般多多開發速度最佳一般一般 這邊簡單說明了三種查詢方式,
各位可以依照適合的情境去選擇。
參考連結
Entity SQL 語言
LINQ to Entities 概觀
查詢產生器方法 (Entity Framework)
转自http://www.dotblogs.com.tw/asdtey/archive/2009/10/22/efquerytype.aspx
- 介绍EF提供的3中查询方式
- 介绍EF提供的3中查询方式
- EF提供的三种查询方式
- EF中一条简单的查询语句
- Hibernate提供的各种查询方式
- Hibernate 提供的各种查询方式
- Hibernate提供的多种查询方式
- EF中LINQ查询原理
- EF中视图主键对查询结果的影响
- EF中一种简单的多条件动态查询方法
- EF中生成edmx文件的俩种方式
- C++中提供的类型转换方式
- BootstrapServiceRegistry中提供的基础服务介绍
- 【ITOO 3】.NET 动态建库建表:实用EF框架提供的codeFirst实现动态建库
- EF查询
- EF查询
- thinkphp的CURD和查询方式介绍
- 接口的提供方式
- 删除指针两次
- Android 动画框架详解,第 1 部分
- C++中各种类型的成员变量的初始化方法
- 不同版本SDK电话本内容的获取(电话,姓名等)
- 学习动态代理stepbystep(5)[应用jdk中的动态代理]
- 介绍EF提供的3中查询方式
- VLC打不开视频文件调试技巧
- AOSP: 导入项目报错
- Domino的命名空间
- DeviceIoControl的使用说明
- 即时通讯工具Openfire Spark安装指南
- 在 LotusScript 中为自定义对象模拟事件
- logratate管理tomcat的catalina.out
- 工作中用到的git命令