Entity Framework支持的查询方式有三种

  • LINQ to Entities
  • Entity SQL
  • Native SQL

【LINQ to Entities】

LINQ(语言集成查询)是从Visual Studio 2008开始引入的功能,在C#中可以使用LINQ查询不同的数据源。LINQ-to-Entities在entity framework上的操作,可以访问底层数据库中 的数据。以下是LINQ查询语法示例:

 public course FindWith(int id)
{
using (var context = new SchoolSchemaEntities())
{
//使用LINQ方法查询
return context.courses.FirstOrDefault(w => w.CourseId == id);
}
}
public course FindWith(int id)
{
using (var context = new SchoolSchemaEntities())
{
//使用LINQ语法查询
var query = from c in context.courses
where c.CourseId == id
select c;
return query.FirstOrDefault<course>();
}
}

【Entity SQL】

我们需要通过ObjectContext 来创建Entity SQL查询,它是由实体框架的对象服务直接处理的。它返回ObjectQuery而不是IQueryable。

 public course FindWith(int id)
{
using (var context = new SchoolSchemaEntities())
{
string sqlstring = "SELECT VALUE sc FROM SchoolSchemaEntities.courses as sc WHERE sc.CourseId ==" + id;
var objectContext = (context as IObjectContextAdapter).ObjectContext;
return objectContext.CreateQuery<course>(sqlstring).FirstOrDefault<course>();
}
}

Entity SQL相关参考:https://msdn.microsoft.com/zh-cn/library/bb399560.aspx

【Native SQL】

你可以使用本地SQL查询关系型数据库,就像下面这样

 public course FindWith(int id)
{
using (var context = new SchoolSchemaEntities())
{
return context.courses.SqlQuery("SELECT * FROM school_schema.course WHERE CourseId=" + id)
.FirstOrDefault<course>();
}
}

原文:http://www.entityframeworktutorial.net/Querying-with-EDM.aspx

Entity Framework入门教程: Entity Framework支持的查询方式的更多相关文章

  1. ASP .NET MVC 之Entity Framework入门教程及源码

    本文主要的目的是 1. 说明Entity Framework Power Tools如何使用. 2. Entity Framework  快速门 实验环境: OS: Windows Server 20 ...

  2. Entity Framework入门教程(1)---Entity Framework简介

    什么是Entity Framework 学习EF的前提:熟练使用Linq和Ado.net,因为在使用EF框架进行开发时,我们大多数情况使用Linq进行查询和操作,而EF的底层实现用的是Ado.net. ...

  3. Entity Framework入门教程(4)---EF中的实体关系

    这一节将总结EF是怎么管理实体之间的关系.EF与数据库一样支持三种关系类型:①一对一 ,②一对多,③多对多. 下边是一个SchoolDB数据库的实体数据模型,图中包含所有的实体和各个实体间的关系.通过 ...

  4. Entity Framework入门教程(13)---EF中的高并发

    EF中的高并发 这里只介绍EF6中database-first开发方案的高并发解决方案,code-first开发方案中的高并发会在以后的EF CodeFirst系列中介绍. EF默认支持乐观并发:我们 ...

  5. Entity Framework入门教程(15)---DbContext追踪实体状态改变

    这一节介绍DbContext追踪实体的变化.EF支持DbContext在其生命周期中自动追踪加载的实体.我们可以通过DbChangeTracker类获取DbContext追踪的所有实体的变化. 注意每 ...

  6. Entity Framework入门教程(16)---Enum

    EF DbFirst模式中的枚举类型使用 这一节介绍EF DbFirst模式中的Enum(枚举类型),CodeFirst模式中的Enum会在以后的EF CoreFirst系列中介绍.EF5中添加了对E ...

  7. Entity Framework入门教程(18)---EF6中基于代码进行配置方式

    EF6中基于代码进行配置方式 我们以前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法. ...

  8. Entity Framework入门教程(2)---EF工作流程

    EF工作流程 1.EF基本CRUD流程 下边的图就可以很清晰地展示EF的CRUD操作的基本工作流程: 这里做一个EF CRUD操作的简单总结:1.定义模型:这是EF工作的前提,定义模型包括定义领域类( ...

  9. Entity Framework入门教程(3)---EF中的上下文简介

    1.DbContext(上下文类) 在DbFirst模式中,我们添加一个EDM(Entity Data Model)后会自动生成一个.edmx文件,这个文件中包含一个继承DbContext类的上下文实 ...

随机推荐

  1. 使用bootstrap的插件实现模态框效果

    在上一篇文章中,我们使用 js+css 实现了模态框效果,在理解了模态框的基本实现方法和实现效果后,我们就要寻找更快捷的方法,又快又好的来完成模态框开发需求,从而节约时间,提高效率.一个好的轮子,不仅 ...

  2. SQL SERVER大话存储结构(3)_数据行的行结构

            一行数据是如何来存储的呢?     变长列与定长列,NULL与NOT NULL,实际是如何整理存放到 8k的数据页上呢?     对表格进行增减列,修改长度,添加默认值等DDL SQL ...

  3. centos手动配置IP和DNS

    手动设置ip地址 如果虚拟机不能自动获取IP,只能手动配置,配置方法如下: 输入命令 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] ...

  4. Swift和Javascript的神奇魔法

    Swift和Javascript的神奇魔法 记录Swift和Javascript如何进行交互 前言 今天在网上看到了一篇介绍Swift和Javascript交互的文章,感觉作者写的很好,因此把作者文章 ...

  5. Python 随机生成有效手机号码及身份证

    中国那么大,人那么多,几乎人手一部手机.手机号码已经作为各大互联网站的注册账户.同样,身份证更是如此.以下是生成有效手机号码和身份证号. 身份证需要下载districtcode.txt这个文件:htt ...

  6. C#打开php链接传参然后接收返回值

    php代码 一.php <?php header("Content-Type:text/html;charset=UTF-8"); $u=$_POST['zdupdate'] ...

  7. javaWeb学习总结(3)- Servlet基础

    Servlet的应用 Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web浏览器或其他http客户程序发出请求. 与http服务器上的数据库或应用程 ...

  8. 关于图的顶点染色问题的各种算法的C++实现之初探(一)——引言与简介

    我是一个数学工作者,专业方向是图论.研究图论已经十年有余.一个月前,一个偶然的机会让我萌生了一个念头,那就是我想尝试用C++写出我所学过的图论方面的算法.作为一个数学工作者,过去一直是纸上谈兵,我之前 ...

  9. MPP 一、Greenplum 集群安装

    Installating and Initializing a Greenplum Database System... 1 安装说明 1.1 环境说明 名称 版本 下载地址 虚拟机 Oracle V ...

  10. angular实现的按钮提示

    用angularJS简单实现了一个小的按钮提示,html文件中需要引入jquery.js和angular.js css代码: <style type="text/css"&g ...