Entity Framework入门教程: Entity Framework支持的查询方式
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支持的查询方式的更多相关文章
- ASP .NET MVC 之Entity Framework入门教程及源码
本文主要的目的是 1. 说明Entity Framework Power Tools如何使用. 2. Entity Framework 快速门 实验环境: OS: Windows Server 20 ...
- Entity Framework入门教程(1)---Entity Framework简介
什么是Entity Framework 学习EF的前提:熟练使用Linq和Ado.net,因为在使用EF框架进行开发时,我们大多数情况使用Linq进行查询和操作,而EF的底层实现用的是Ado.net. ...
- Entity Framework入门教程(4)---EF中的实体关系
这一节将总结EF是怎么管理实体之间的关系.EF与数据库一样支持三种关系类型:①一对一 ,②一对多,③多对多. 下边是一个SchoolDB数据库的实体数据模型,图中包含所有的实体和各个实体间的关系.通过 ...
- Entity Framework入门教程(13)---EF中的高并发
EF中的高并发 这里只介绍EF6中database-first开发方案的高并发解决方案,code-first开发方案中的高并发会在以后的EF CodeFirst系列中介绍. EF默认支持乐观并发:我们 ...
- Entity Framework入门教程(15)---DbContext追踪实体状态改变
这一节介绍DbContext追踪实体的变化.EF支持DbContext在其生命周期中自动追踪加载的实体.我们可以通过DbChangeTracker类获取DbContext追踪的所有实体的变化. 注意每 ...
- Entity Framework入门教程(16)---Enum
EF DbFirst模式中的枚举类型使用 这一节介绍EF DbFirst模式中的Enum(枚举类型),CodeFirst模式中的Enum会在以后的EF CoreFirst系列中介绍.EF5中添加了对E ...
- Entity Framework入门教程(18)---EF6中基于代码进行配置方式
EF6中基于代码进行配置方式 我们以前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法. ...
- Entity Framework入门教程(2)---EF工作流程
EF工作流程 1.EF基本CRUD流程 下边的图就可以很清晰地展示EF的CRUD操作的基本工作流程: 这里做一个EF CRUD操作的简单总结:1.定义模型:这是EF工作的前提,定义模型包括定义领域类( ...
- Entity Framework入门教程(3)---EF中的上下文简介
1.DbContext(上下文类) 在DbFirst模式中,我们添加一个EDM(Entity Data Model)后会自动生成一个.edmx文件,这个文件中包含一个继承DbContext类的上下文实 ...
随机推荐
- SSH小结
工作有一段时间了,经常用SSH登录远程机器,但对原理一直不是很了解,所以查阅了一些资料,写个小结. 一. SSH是什么? SSH的全称是Secure Shell, 是一种"用来在不安全的网络 ...
- 使用cl编译C/C++
每次写程序都是用VS下打开的,而且有智能提示,经常很容易看到自己哪里写错了,其实想联系自己写代码的能力,不应该要这些的,纯粹的不要智能提示 所以自己想用轻量级的编辑器写,然后就用了notepad++( ...
- 关于cgi、FastCGI、php-fpm、php-cgi
搞了好长时间的php了,突然有种想法,想把这些整理在一起,于是查看各种资料,找到一片解释的很不错的文章,分享一下-- 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式 ...
- mysql一库多表查询主键
mysql> show databases; mysql> use information_schema; mysql> show tables; mysql> select ...
- Day5模块-time和datetime模块
模块是封装一段代码来实现某种功能. 分为三类: 1.自定义模块 2.标准库,内置模块 3.开源模块 -------------------------------------------------- ...
- 【JQuery基础知识/statusCode(状态码)】---初学者必备
今天,给大家分享一下JQuery的基础知识,简单介绍一下JQuery高级_Ajax,和我们常见的一些statusCode(状态码)~~~ 如果存在错误,请大家多多指正留言~小女子在此谢过! 一.JQu ...
- mybaties 缓存
http://www.cnblogs.com/zemliu/archive/2013/08/05/3239014.html http://www.cnblogs.com/xdp-gacl/p/4270 ...
- 4.docker学习之镜像
镜像 我们知道,我们想在Windows操作系统上跑Linux,需要安装一个虚拟机程序,然后下载一个Linux镜像,在该虚拟机程序中创建一个虚拟机,并使用该镜像安装对应的Linux操作系统,安装好之后, ...
- 纯CSS3实现loading正在加载。。。
场景分析:随着我司专职前端切图人员离职,切图的活重新落到我们小组团队成员的日常任务list里面,加上我们小组 7个前端 基本都是后台转的前端 (赶鸭子上架 前端现在需求量大 没办法) 加上自己也将就一 ...
- cuda学习2-block与thread数量的选取
由上一节可知,在main函数中,cuda程序的并行能力是在add<<<N,1>>>( dev_a, dev_b, dev_c )函数中体现的,这里面设置的是由N个b ...