zoukankan      html  css  js  c++  java
  • ADO.NET Entity Framework

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

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

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

    1. 将Visual Studio 2008及.NET Framework 3.5升级到SP1。点击转到升级地址
    2. 安装SQL SERVER 2005,VS 2008中自带的EXPRESS版的SQL SERVER应该也可以用。
    3. 下载并附加数据库:点击下载DemoDbV2
    4. 完成数据库到实体的映射。具体做法,请参考《ADO.NET Entity Framework 试水——掠影》一文。
    5. 下载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的良好的工具。


  • 相关阅读:
    [python]百度语音rest api
    [vim]插件ctrlp
    [vim]插件NerdTree
    [Flask Security]当不能通过认证的时候制定跳转
    MongoDB 安装
    c/c++封装成python包
    mysql的常用操作
    python基础知识的学习和理解
    docker系列之三:docker实际应用
    docker系列之二:构建docker容器
  • 原文地址:https://www.cnblogs.com/eart/p/2052364.html
Copyright © 2011-2022 走看看