CN101989274A - 利用语言集成查询linq进行查询的方法 - Google Patents
利用语言集成查询linq进行查询的方法 Download PDFInfo
- Publication number
- CN101989274A CN101989274A CN2009100557724A CN200910055772A CN101989274A CN 101989274 A CN101989274 A CN 101989274A CN 2009100557724 A CN2009100557724 A CN 2009100557724A CN 200910055772 A CN200910055772 A CN 200910055772A CN 101989274 A CN101989274 A CN 101989274A
- Authority
- CN
- China
- Prior art keywords
- query
- class
- inquiry
- database
- user interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种利用语言集成查询LINQ进行查询的方法,包括:创建对象关系映射器,该对象关系映射器关联一数据库以及一用户交互界面;在用户交互界面中定义一组抽象级别的查询类,该对象关系映射器将该组抽象级别的查询类镜像成对应的对象类;该对象关系映射器将数据库中的数据与镜像成的对象类建立关联;用户交互界面接收到查询指令,该查询指令包含抽象的查询信息,对象关系映射器将该查询信息投射到该一组查询类,确定该查询信息与查询类的匹配;根据查询类查找对应的对象类;根据对相类查找数据库中关联的数据,将数据返回给用户交互界面。
Description
技术领域
本发明涉及数据库技术,尤其涉及数据库的查询技术。
背景技术
.NET3.5引入了一个新技术,称为语言集成查询LINQ(LanguageIntegrated Query)。它是集成在.NET编程语言中的一种特性。LINQ能够在编写程序时可以提供很好的编译时语法检查、丰富的元数据、智能感知、静态类型等强类型语言的好处;并且它同时还使得查询可以方便地对内存中的信息进行查询而不仅仅只是外部数据源。
LINQ的上述优势也可以给现有的传统数据库的查询带来方便。
发明内容
本发明提供一种使用LINQ来查询传统数据库的方法。
根据本发明,提供一种利用语言集成查询LINQ进行查询的方法,包括下述的步骤:
创建对象关系映射器,该对象关系映射器关联一数据库以及一用户交互界面;
在用户交互界面中定义一组抽象级别的查询类,该对象关系映射器将该组抽象级别的查询类镜像成对应的对象类;
该对象关系映射器将数据库中的数据与镜像成的对象类建立关联;
用户交互界面接收到查询指令,该查询指令包含抽象的查询信息,对象关系映射器将该查询信息投射到该一组查询类,确定该查询信息与查询类的匹配;
根据查询类查找对应的对象类;
根据对相类查找数据库中关联的数据,将数据返回给用户交互界面。
该方法还包括:
在用户交互界面中添加抽象级别的查询过滤器;
对象关系映射器将抽象级别的查询过滤器映射成数据库中的具体的查询过滤器;
在用户交互界面中接受对于抽象级别的查询过滤器的查询过滤指令;
对象关系映射器将该查询过滤指令映射成查询信息,使用具体的查询过滤器进行查询。
采用本发明的技术方案,利用语言集成查询LINQ的功能,对用户实现了抽象级别上对传统数据的查询,用户可以根据自己熟悉的方式(抽象意义上的方式)输入查询指令,而不必按照数据库的数据保存方式来输入查询指令,大大方便了用户的使用,而在查询效果上是与传统的方式一致的。
附图说明
图1揭示了根据本发明的利用语言集成查询LINQ进行查询的方法的流程图。
图2揭示了根据本发明的利用语言集成查询LINQ结合查询过滤器进行查询的方法的流程图。
具体实施方式
根据本发明,提出一种利用语言集成查询LINQ进行查询的方法,参考图1所示,该方法包括下述的步骤:
10.创建对象关系映射器,该对象关系映射器关联一数据库以及一用户交互界面。
20.在用户交互界面中定义一组抽象级别的查询类,该对象关系映射器将该组抽象级别的查询类镜像成对应的对象类。
30.该对象关系映射器将数据库中的数据与镜像成的对象类建立关联。
40.用户交互界面接收到查询指令,该查询指令包含抽象的查询信息,对象关系映射器将该查询信息投射到所述的一组查询类,确定该查询信息与查询类的匹配。
50.根据查询类查找对应的对象类。
60.根据对相类查找数据库中关联的数据,将数据返回给用户交互界面。
在本发明所提出的利用语言集成查询LINQ进行查询的方法中,还可以使用查询过滤器的功能。传统的查询过滤器设置在数据库中,需要直接输入符合数据库的数据保存标准的查询信息,对于使用者来说不是很方便,本发明利用LINQ在用户交互界面中提供一种抽象级别的查询过滤器,以方便用户使用。
参考图2所示,本发明还提供利用语言集成查询LINQ结合查询过滤器进行查询的方法,该方法在上述图1所揭示的方法的基础上,还包括下述的步骤:
70.在用户交互界面中添加抽象级别的查询过滤器。
80,对象关系映射器将抽象级别的查询过滤器映射成数据库中的具体的查询过滤器。
90.在用户交互界面中接受对于抽象级别的查询过滤器的查询过滤指令。
100.对象关系映射器将该查询过滤指令映射成查询信息,使用具体的查询过滤器进行查询。
下面介绍本发明的利用语言集成查询LINQ进行查询、以及利用语言集成查询LINQ结合查询过滤器进行查询的方法的一个具体实现。
首先创建一个对象关系映射器,该对象关系映射器可以添加、创建、删除和关联数据对象。在用户交互界面中定义一组抽象级别的查询类,对象关系映射器将该组抽象级别的查询类镜像成对应的对象类,对象关系映射器还将数据库中的数据与镜像成的对象类建立关联。于是,当用户在用户交互界面上修改对象时,对象关系映射器利用LINQ to SQL镜像这些对象的结构的类。以后在准备为数据对象编写LINQ查询时,这些类允许提供设计期间的IntelliSense支持、强类型化和编译期间的类型检查。
LINQ不需要明确定义如何执行查询,而允许在比较抽象的级别上定义查询。只要定义查询要返回的内容,.NET及其编译器就会确定查询如何运行的细节。LINQ的基本功能位于新的System.Core.dll程序集中。
利用LINQ对传统数据库的查询的一个基本流程如下:
首先把LINQ命名空间添加到WEB页面上,添加LINQ命名空间
<%@Import Namespace=″system.Linq″%>
添加这个命名空间将允许页面使用所有的LINQ基本功能。获得GJobLib的简单的查询获得泛型列表,并将此绑定到GridView控件上,使用LINQ后可以更加简单的进行查询,值得注意的是这个LINQ查询语句中利用了新语言关键字from和select。该查询还定义了一个新变量m。这个变量在查询中以两种方式使用。首先,在from语句中定义它,就告诉LINQ让m表示单个集合项,在本例中就是GJobLib对象。在查询中第二次使用m是在select语句中。这就告诉LINQ输出一个匹配m的结构的投射。在本例中就表示LINQ创建了一个匹配GJobLib对象结构的投射。
LINQ不仅可以投射整个表中的所有对象,还可以投射自己定义的新的投射,同时明确定义字段名称,指定要在结果集中出现的对象。LINQ还可以使用order by语句对结果进行排序。与SQL一样,也可以选择按升序或降序对结果排序。
LINQ语言极大地提高了代码的可读性和可理解性。LINQ允许简单地表示出查询的意图,告诉编译器希望代码做什么,编译器就会很好得去执行。
LINQ还可以使用熟悉的、类似SQL的where语法,添加查询过滤器。
采用本发明的技术方案,利用语言集成查询LINQ的功能,对用户实现了抽象级别上对传统数据的查询,用户可以根据自己熟悉的方式(抽象意义上的方式)输入查询指令,而不必按照数据库的数据保存方式来输入查询指令,大大方便了用户的使用,而在查询效果上是与传统的方式一致的。
Claims (2)
1.一种利用语言集成查询LINQ进行查询的方法,其特征在于,该方法包括下述的步骤:
创建对象关系映射器,该对象关系映射器关联一数据库以及一用户交互界面;
在用户交互界面中定义一组抽象级别的查询类,该对象关系映射器将该组抽象级别的查询类镜像成对应的对象类;
该对象关系映射器将数据库中的数据与镜像成的对象类建立关联;
用户交互界面接收到查询指令,该查询指令包含抽象的查询信息,对象关系映射器将该查询信息投射到所述的一组查询类,确定该查询信息与查询类的匹配;
根据查询类查找对应的对象类;
根据对相类查找数据库中关联的数据,将所述数据返回给用户交互界面。
2.如权利要求1所述的利用语言集成查询LINQ进行查询的方法,其特征在于,还包括:
在用户交互界面中添加抽象级别的查询过滤器;
对象关系映射器将抽象级别的查询过滤器映射成数据库中的具体的查询过滤器;
在用户交互界面中接受对于抽象级别的查询过滤器的查询过滤指令;
对象关系映射器将该查询过滤指令映射成查询信息,使用具体的查询过滤器进行查询。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100557724A CN101989274A (zh) | 2009-07-31 | 2009-07-31 | 利用语言集成查询linq进行查询的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100557724A CN101989274A (zh) | 2009-07-31 | 2009-07-31 | 利用语言集成查询linq进行查询的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101989274A true CN101989274A (zh) | 2011-03-23 |
Family
ID=43745811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100557724A Pending CN101989274A (zh) | 2009-07-31 | 2009-07-31 | 利用语言集成查询linq进行查询的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101989274A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870605A (zh) * | 2014-04-08 | 2014-06-18 | 南京优玛软件科技有限公司 | 面向对象的数据库虚拟镜像实现方法 |
-
2009
- 2009-07-31 CN CN2009100557724A patent/CN101989274A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870605A (zh) * | 2014-04-08 | 2014-06-18 | 南京优玛软件科技有限公司 | 面向对象的数据库虚拟镜像实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106934062B (zh) | 一种查询elasticsearch的实现方法及系统 | |
US11789945B2 (en) | Clause-wise text-to-SQL generation | |
CN102073490B (zh) | 转译数据库语言的方法及装置 | |
US6523172B1 (en) | Parser translator system and method | |
CN103942228A (zh) | 规则引擎、计算方法、业务系统及调用方法 | |
CN114625732B (zh) | 基于结构化查询语言sql的查询方法和系统 | |
CN106933869B (zh) | 一种操作数据库的方法和装置 | |
CN105718593A (zh) | 一种数据库查询优化方法及系统 | |
CN103294666A (zh) | 语法编译方法、语义解析方法以及对应装置 | |
CN102708203A (zh) | 一种基于xml元数据的数据库动态管理方法 | |
CN102880468A (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
CN106980619B (zh) | 数据查询方法及装置 | |
CN101154227A (zh) | 一种基于asn类型对象的代码生成方法 | |
CN109656951A (zh) | 基于表达式查询数据的方法及查询系统 | |
US9268558B2 (en) | Searching source code | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN113467785A (zh) | 一种拟态数据库的sql转译方法和系统 | |
CN106570095B (zh) | 一种xml数据的操作方法及设备 | |
CN107025265B (zh) | 搜索方法、装置、系统、以及命令转换器的生成方法 | |
CN108766507A (zh) | 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法 | |
KR20040097937A (ko) | 오브젝트 기반의 파이프라인을 채용한 시스템 및 방법 | |
CN111782195B (zh) | 一种基于在请求参数上添加注解拼接成sql的查询方法 | |
US11620282B2 (en) | Automated information retrieval system and semantic parsing | |
CN101013430A (zh) | 搜索方法及装置 | |
CN115952203B (zh) | 数据查询方法、设备、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110323 |