ADO.NET Entity Framework 体验:工具

"宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋"……eSqlBlast之于Entity Framework尤如刀剑之于侠客。好的兵器,就像李寻欢的飞刀,能够在使用者熟练掌握的情况下,发挥事半功倍的效果。

eSqlBlast是目前针对于EF做得比较好的查询工具,类似于MS-SQL SERVER的查询分析器,提供了简单的Intellisense功能,可以通过eSQL(Entity SQL)对EDM进行查询,输出查询结果。除此以外,它还能够直接查看当前的实体集情况、通过eSQL生成的SQL语句等。eSqlBlast的使用非常方便。本文通过使用eSqlBlast来实现一些查询实例,来熟悉一下如何使用eSqlBlast。

一、要完成本文中的实例,您需要作如下准备


二、编译eSqlBlast项目

打开Microsoft.Samples.Data.eSqlBlast.sln,Ctrl+Shift+B,编译即可获得Microsoft.Samples.Data.eSqlBlast.WinShell.exe。不多废话了。

三、设置EDM输出格式

在进行eSqlBlast的连接配置的时候,需要用到csdl、ssdl和msl三个文件。这三个文件由.EDM文件生成,但在VS2008SP1中,默认设置不输出这三个文件。因此,我们需要将EDM文件的"Metadata Artifact Processing"属性设置为"Copy to Output Directory"。见下图。

 附件: 您所在的用户组无法下载或查看附件

这样,重新编译以后,在项目输出文件夹中,就会出现三个对应概念模型的文件。放着,以备后用。

四、进行查询

1. 配置连接
运行Microsoft.Samples.Data.eSqlBlast.WinShell.exe,出现如下界面:

 附件: 您所在的用户组无法下载或查看附件

在这里,我们需要配置两处。第一处是连接字符串,这个,可以从app.configConnectionString元素里复制出来。注意,只要复制"provider connection string="后面的部分。并且要去掉那两个"""。Metadata部分,我们可以点击Add Files,然后把刚才生成的那三个文件一次性添加进来;当然,如果偷下懒,也可以通过Add Folder直接指向有那三个文件的文件夹,效果基本一样。
配置完成以后,便可以点击大大的"Connect"来完成连接了。正确连接以后,底部的状态栏即变成显示绿色的"Connected"字样。

 附件: 您所在的用户组无法下载或查看附件

2. 查看概念模型概况(此步可以省略,不会影响查询)
如果想要查看一下当前的概念模型的概况,可以打开第二页,选择.csdl文件后点击"Render",便可以看到解析出来的.csdl所描述的概念模型的"实体集"、"实体类"、"复杂类型"以及所有的"联系"。见下图。

 附件: 您所在的用户组无法下载或查看附件

3. 输入eSQL语句
让我们进入最有趣的部分。点击"Query"标签,用eSQL作一些查询。建议大家不要用"复制粘贴大法",自己输入一下eSQL来体验一下用eSqlBlast书写eSQL的快感^_^
我们做两个实例:
1. 询出所有的笔记本的情况


Code





2. 查询从第三条记录起的两台笔记本的情况(品牌名称排序)


Code




当输入到from的时候,会出现智能感知如下图:

 附件: 您所在的用户组无法下载或查看附件

4. 查看输出结果
结果也很清晰:

 附件: 您所在的用户组无法下载或查看附件
第一部分,为我们输出的eSQL语句;
第二部分,为生成的SQL语句;
第三部分为结果记录数;
最后,列出了记录明细。

第二条示例的结果如下:

 附件: 您所在的用户组无法下载或查看附件

五、小结
虽然eSqlBlast并不完美,一开始要写连接字符串、选择三个文件,稍显繁杂(不像SQL SERVER,选个服务器、输个用户名密码什么的就能连了)、智能感知不是特别完善、暂时不支持带参数查询等,但其查询功能、查看生成的SQL语句的功能,还是比较实用的。此外,eSqlBlast不失为一款学习、调试eSQL的良好的工具。




(文/xiaomi7732  出处/博客园)


 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [ADO.Net] 的这些文章也感兴趣:

ADO.NET入门(2)
ADO.NET基础教程(一)
利用C#实现分布式数据库查询
随机得到Access数据库记录
通过VisualC#.NET建一个DTS任务
ADO.Net data services开发框架学习
注意ADO.NET中数据查询语句中的符号格式(c#实现)
迈向Data 2.0——学习使用ADO.NET数据服务框架
如何把一个DataTable中的某列通过表关系加到另外一个DataTable中
DataTable.Select使用小心得