您的位置:首页 > 其它

ADO.NET Entity Framework 试水——工具

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

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

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

将Visual Studio 2008及.NET Framework 3.5升级到SP1。点击转到升级地址

安装SQL SERVER 2005,VS 2008中自带的EXPRESS版的SQL SERVER应该也可以用。

下载并附加数据库:点击下载DemoDbV2

完成数据库到实体的映射。具体做法,请参考《ADO.NET Entity Framework 试水——掠影》一文。

下载eSqlBlast:点击转向CodePlex

二、编译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

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

四、进行查询

1. 配置连接

运行Microsoft.Samples.Data.eSqlBlast.WinShell.exe,出现如下界面:



图2

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

配置完成以后,便可以点击大大的"Connect"来完成连接了。正确连接以后,底部的状态栏即变成显示绿色的"Connected"字样。



图3

2. 查看概念模型概况(此步可以省略,不会影响查询)

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



图4

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的时候,会出现智能感知如下图:



图5

4. 查看输出结果

结果也很清晰:



图6

第一部分,为我们输出的eSQL语句;

第二部分,为生成的SQL语句;

第三部分为结果记录数;

最后,列出了记录明细。

第二条示例的结果如下:



图7

五、小结

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

==返回索引==
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: