Here are some rules to remember for Entity SQL queries:

1.Use SELECT VALUE when projecting more than one type;

2.When querying with SELECT,the ObjectQuery type must be a DbDataRecord ;

3.You can use SELECT VALUE when projecting a single value or entity;

4.When querying with SELECT VALUE,the ObjectQuery type must be the same type as the value being returned.

 

用 Entity SQL 查询“包装”和“未包装” 结果的规则:

下面是几条用Entity SQL 查询需要记住的规则:

1、当投射的类型超过一个时,用 select value ;

2、当用 select 查询时,ObjectQuery 结果集类型必须为DbDataRecord类型;

3、当查询单个值或单个实体的时候,推荐使用 select value 查询;

4、当用 select value 进行查询时,ObjectQuery 类型必须和返回值类型保持一致;

 

Examples:

1、Wrapped Contact needs to be cast:

  1. private static void WrappedContactInEntitySql()
  2. {
  3. using (var context = new PEF())
  4. {
  5. var queryString =
  6. "select c from PEF.Contacts as c where c.FirstName ='Robert' ";
  7.  
  8. var contacts = context.CreateQuery<DbDataRecord>(queryString);
  9.  
  10. foreach (DbDataRecord c in contacts)
  11. {
  12. var contact = (Contact)c[0];
  13.  
  14. Console.WriteLine("{0} {1} {2}",
  15. contact.Title.Trim(),
  16. contact.FirstName.Trim(),
  17. contact.LastName.Trim());
  18. }
  19.  
  20. }
  21.  
  22. Console.WriteLine("Press Enter...");
  23. Console.ReadLine();
  24.  
  25. }

2、Unwrapped Contact does not need to be cast:

  1. private static void UnwrappedContactInEntitySql()
  2. {
  3. using (var context = new PEF())
  4. {
  5. var queryString =
  6. "select value c from PEF.Contacts as c where c.FirstName = 'Robert' ";
  7.  
  8. var contacts = new ObjectQuery<Contact>(queryString, context);
  9.  
  10. foreach (var contact in contacts)
  11. {
  12. Console.WriteLine("{0} {1} {2}",
  13. contact.Title.Trim(),
  14. contact.FirstName.Trim(),
  15. contact.LastName.Trim());
  16. }
  17.  
  18. }
  19.  
  20. Console.WriteLine("Press Enter...");
  21. Console.ReadLine();
  22.  
  23. }

Entity SQL rules for Wrapped and Unwrapped Results的更多相关文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (13) -----第三章 查询之使用Entity SQL

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-4使用实体SQL查询模型 问题 你想通过执行Entity SQL语句来查询你的实 ...

  2. Entity SQL 初入

    Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM).Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询 ...

  3. 了解entity framework其他query方式之Entity SQL,Raw Sql分析

    一:linq 对ef来说不是唯一性的query... 二:Entity Sql 1. esql => entity sql... [类sql的语言] 和sql差不多,但是呢,不是sql... u ...

  4. Entity Framework --Entity SQL注意事项

    Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM).Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询 ...

  5. EF中Entity SQL用法

    public List<policecase> GetPoliceCaseList(PoliceCaseFilter view)        {            string sq ...

  6. Programming Entity Framework 翻译(1)-目录

    1. Introducing the ADO.NET Entity Framework ado.net entity framework 介绍 1 The Entity Relationship Mo ...

  7. Entity Framework关于SQL注入安全问题

    1.EF生成的sql语句,用 parameter 进行传值,所以不会有sql注入问题 2.EF下有涉及外部输入参数传值的,禁止使用EF直接执行sql命令方式,使用实体 SQL   参考: https: ...

  8. Entity Framework 学习初级篇4--Entity SQL

    Entity SQL 是 ADO.NET 实体框架 提供的 SQL 类语言,用于支持 实体数据模型 (EDM).Entity SQL 可用于对象查询和使用 EntityClient 提供程序执行的查询 ...

  9. Save results to different files when executing multi SQL statements in DB Query Analyzer 7.01

        1 About DB Query Analyzer DB Query Analyzer is presented by Master Genfeng,Ma from Chinese Mainl ...

随机推荐

  1. bzoj 1706: [usaco2007 Nov]relays 奶牛接力跑【矩阵乘法+Floyd】

    唔不知道怎么说--大概核心是把矩阵快速幂的乘法部分变成了Floyd一样的东西,非常之神 首先把点离散一下,最多有200个,然后建立邻接矩阵,a[u][v]为(u,v)之间的距离,没路就是inf 然后注 ...

  2. 10.11 NOIP模拟题(1)

    /* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...

  3. 阿里云短信验证_基于阿里云OpenAPI实现

    阿里云短信服务 背景简介: 短信验证以及短信通知,目前已经应用的非常广泛,最近因项目需要,需要将原来的短信接口换成阿里云的的短信服务,原项目集成的短信服务能够实现短信的发送以及短信的验证整个过程,简单 ...

  4. Hdu 3487 play the chain

    Description 瑶瑶很喜欢玩项链,她有一根项链上面有很多宝石,宝石从1到n编号. 首先,项链上的宝石的编号组成一个序列:1,2,3,...,n. 她喜欢两种操作: 1.CUT a b c:他会 ...

  5. Linux环境下RPM包相互依赖的解决办法

    Linux环境下安装Oracle11gR2提示缺少"Package: elfutils-libelf-devel-0.125    FAILED"包,按照提示安装该包时又提示缺少依 ...

  6. Install-Package : “XXXX”已拥有为“XXXX”定义的依赖项。

    Install-Package : “AutoMapper”已拥有为“NETStandard.Library”定义的依赖项.所在位置 行:1 字符: 16+ Install-Package <& ...

  7. leetcode264 Ugly Number II

    思路: 新生成的数字一定是原来的某个数字乘以2.3或5,为了得到最小的一个,需要用三个指针记录原数字的位置以供比较.为了避免重复,生成新数字以后,原数字对应的指针需要后移一下. 实现: class S ...

  8. P1823 音乐会的等待

    题目描述 N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的. ...

  9. Json-->Newton.Json.dll的使用方法

    Newton.Json.dll  for .NET2.0 实体1 public class Student    {        public string ID { get; set; }     ...

  10. Android学习笔记(四) JAVA基础知识回顾

    一.接口 1)接口中定义的方法都是public权限,并且默认为public,而不是default. 2)接口的实现(implements)是特殊的继承,类似于父类子类的关系,可以向上转型(非常重要). ...