"宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋"……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. 询出所有的笔记本的情况
select value p from NbWhEntities.Notebook as p; |
2. 查询从第三条记录起的两台笔记本的情况(品牌名称排序)
select value p from NbWhEntities.Notebook as p order by p.Brand skip 2 limit 2; |
当输入到from的时候,会出现智能感知如下图:
4. 查看输出结果
结果也很清晰:
第一部分,为我们输出的eSQL语句;
第二部分,为生成的SQL语句;
第三部分为结果记录数;
最后,列出了记录明细。
第二条示例的结果如下:
五、小结
虽然eSqlBlast并不完美,一开始要写连接字符串、选择三个文件,稍显繁杂(不像SQL SERVER,选个服务器、输个用户名密码什么的就能连了)、智能感知不是特别完善、暂时不支持带参数查询等,但其查询功能、查看生成的SQL语句的功能,还是比较实用的。此外,eSqlBlast不失为一款学习、调试eSQL的良好的工具。
==返回索引==