[新手入门]快速学习 ADO.NET Entity Framework系列文章 #3 -- LINQ-to-SQL、EntitySQL、查询产生器方法(Query builder)三种语法
2010-10-27 18:11
1321 查看
[b]ADO.NET Entity入门的程序 #3(自己动手写)--LINQ-to-SQL、EntitySQL、查询产生器方法(Query builder)三种语法[/b]
http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/27/entity_manual_3.aspx
资料来源: http://msdn.microsoft.com/zh-tw/library/bb738512.aspx
所以我只在此补充 VB范例。
这三个范例的执行结果都一样,只是采用了三种不同的查询语法而已。
HTML画面上都是空白的,纯粹用手写「后置程序代码」
最上方的「NameSpace」都一样喔,我先写在此
Imports System.Data
Imports System.Data.Objects
Imports System.Data.Objects.DataClasses
'==============================
Imports testModel '==自己做的 Entity Model(请用 VS 2008/2010 先做好)
'==============================
第一种方法,LINQ-to-Entity
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Using u_context As New testEntities
Dim u_testAs ObjectSet(Of test) = u_context.test
'== 以下是 LINQ to Entities 范例。
Dim t_Query1 = From t In u_test _
Select New With _
{ _
.TestId = t.id, _
.TestTitle = t.title _
} '-- 将取出的属性(字段)名称,修改成其它名字
For Eachresult In t_Query1 '-- 请注意result的数据型态!!
Response.Write(result.TestId & "----" & result.TestTitle)
Response.Write("<hr>")
Next
End Using
End Sub
第二种方法,Entity SQL
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Using u_context As New testEntities
'== 以下是 EntitiesSQL范例。
Dim myQueryString As String = "SELECT t.id, t.title FROMtestEntities.test as t"
Try
'== 虽然 ObjectQuery(Of T)通常是实体(Entity) 类型,
'== 但是它也可以是「DbDataRecord型别」作为匿名型别的投影。
For Each dr As System.Data.Common.DbDataRecordIn New ObjectQuery(Of System.Data.Common.DbDataRecord)(myQueryString, u_context)
Response.Write(dr(0) & "----" & dr(1))
Response.Write("<hr>")
Next
Catchex As EntityException
Response.Write(ex.ToString())
Catchex1 As InvalidOperationException
Response.Write(ex1.ToString())
End Try
End Using
End Sub
第三种方法,查询产生器(Query builder)方法
Protected Sub Page_Load(ByVal sender As Object, ByVale As System.EventArgs) Handles Me.Load
Using u_context As New testEntities
'== 以下是 查询产生器方法(Query builder methods)范例。
Dim myQueryAs ObjectQuery(Of System.Data.Common.DbDataRecord)= u_context.test.Select("it.id, it.title")
'== 如果要取出前十笔记录,请写成 u_context.test.Select("it.id, it.title").Top(10)
Try
For Each dr As System.Data.Common.DbDataRecord In myQuery
Response.Write(dr(0) & "----" & dr(1))
Response.Write("<hr>")
Next
Catchex As EntityException
Response.Write(ex.ToString())
Catchex1 As InvalidOperationException
Response.Write(ex1.ToString())
End Try
End Using
End Sub
点部落上面果真卧虎藏龙, David网友写的一系列文章,很值得一读。
http://www.dotblogs.com.tw/asdtey/category/2934.aspx
真是相见恨晚!不看会搥心肝喔!
上面三种查询语法,微软有提供一个好用的查询工具,对于我们学习很有帮助!!
http://www.dotblogs.com.tw/mis2000lab/archive/2010/10/27/entity_manual_3.aspx
资料来源: http://msdn.microsoft.com/zh-tw/library/bb738512.aspx
HOW TO:执行传回匿名型别集合的查询 (EntityFramework)
微软的范例有提供 C#语法的范例了,所以我只在此补充 VB范例。
这三个范例的执行结果都一样,只是采用了三种不同的查询语法而已。
HTML画面上都是空白的,纯粹用手写「后置程序代码」
最上方的「NameSpace」都一样喔,我先写在此
Imports System.Data
Imports System.Data.Objects
Imports System.Data.Objects.DataClasses
'==============================
Imports testModel '==自己做的 Entity Model(请用 VS 2008/2010 先做好)
'==============================
第一种方法,LINQ-to-Entity
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Using u_context As New testEntities
Dim u_testAs ObjectSet(Of test) = u_context.test
'== 以下是 LINQ to Entities 范例。
Dim t_Query1 = From t In u_test _
Select New With _
{ _
.TestId = t.id, _
.TestTitle = t.title _
} '-- 将取出的属性(字段)名称,修改成其它名字
For Eachresult In t_Query1 '-- 请注意result的数据型态!!
Response.Write(result.TestId & "----" & result.TestTitle)
Response.Write("<hr>")
Next
End Using
End Sub
第二种方法,Entity SQL
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)Handles Me.Load
Using u_context As New testEntities
'== 以下是 EntitiesSQL范例。
Dim myQueryString As String = "SELECT t.id, t.title FROMtestEntities.test as t"
Try
'== 虽然 ObjectQuery(Of T)通常是实体(Entity) 类型,
'== 但是它也可以是「DbDataRecord型别」作为匿名型别的投影。
For Each dr As System.Data.Common.DbDataRecordIn New ObjectQuery(Of System.Data.Common.DbDataRecord)(myQueryString, u_context)
Response.Write(dr(0) & "----" & dr(1))
Response.Write("<hr>")
Next
Catchex As EntityException
Response.Write(ex.ToString())
Catchex1 As InvalidOperationException
Response.Write(ex1.ToString())
End Try
End Using
End Sub
第三种方法,查询产生器(Query builder)方法
Protected Sub Page_Load(ByVal sender As Object, ByVale As System.EventArgs) Handles Me.Load
Using u_context As New testEntities
'== 以下是 查询产生器方法(Query builder methods)范例。
Dim myQueryAs ObjectQuery(Of System.Data.Common.DbDataRecord)= u_context.test.Select("it.id, it.title")
'== 如果要取出前十笔记录,请写成 u_context.test.Select("it.id, it.title").Top(10)
Try
For Each dr As System.Data.Common.DbDataRecord In myQuery
Response.Write(dr(0) & "----" & dr(1))
Response.Write("<hr>")
Next
Catchex As EntityException
Response.Write(ex.ToString())
Catchex1 As InvalidOperationException
Response.Write(ex1.ToString())
End Try
End Using
End Sub
点部落上面果真卧虎藏龙, David网友写的一系列文章,很值得一读。
http://www.dotblogs.com.tw/asdtey/category/2934.aspx
真是相见恨晚!不看会搥心肝喔!
上面三种查询语法,微软有提供一个好用的查询工具,对于我们学习很有帮助!!
ADO.Net Entity Framework : (九) 推荐学习EF必备工具EFQuerySamples...
相关文章推荐
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #4 -- 数据新增、删除、修改(ObkectContext的 .SaveChange()方法)
- [新手入门]快速学习 ADO.NET Entity Framework系列文章 #1~#2
- ADO.Net Entity Framework Linq To Entities 语法功能汇编
- LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework
- EF Provider for Access/ODBC 以及ADO.Net Entity Framework 与Linq to SQL的比较和适用场景
- ADO.NET Entity Framework beta 3 和Linq to SQL 在缓存处理上的不同
- LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- ADO.NET Entity Framework查询实体和关联(实体框架快速入门)
- EF Provider for Access/ODBC 以及ADO.Net Entity Framework 与Linq to SQL的比较和适用场景:
- 转:LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework(ADOEF)-ccBoy版
- ADO.NET Entity Framework 学习初级篇3-- LINQ TO Entities
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework(ADOEF)-ccBoy版
- ADO.NET Entity framework 与 LINQ TO SQL 中的功能的一些差别(一)
- ADO.NET Entity Framework 学习初级篇5--ObjectQuery查询及方法
- LINQ to SQL和ADO.NET Entity Framework之间的抉择
- LINQ to SQL和ADO.NET Entity Framework之间的抉择
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- ADO.NET Entity Framework 从入门到精通系列学习教程