一、简介

EF 支持开放底层的 ADO.NET 框架,DbContext有三种常用方法

DbSet.SqlQuery                 //查询并返回Entities
DbContext.Database.SqlQuery<T>    //执行某一个查询,并可以将返回集转换为某一对象
DbContext.Database.ExecuteSqlCommand   //执行某一并无返回集的SQL 命令,例如UPDATE,DELETE操作

二、用法

1、DbSet.SqlQuery用法

            var list = db.admins.SqlQuery("select * from admin");
foreach (var item in list)
{
Response.Write(item.username);
Response.Write("<br>");
}

2、DbContext.Database.SqlQuery<T>用法

            var list = db.Database.SqlQuery<admin>("select * from admin").ToList();
foreach (var item in list)
{
Response.Write(item.username);
Response.Write("<br>");
}

3、DbContext.Database.ExecuteSqlCommand用法

var res=db.Database.ExecuteSqlCommand("update admin set password='123456'");
Response.Write(res);

说明:1和2的结果一样

三、总结

原生SQL执行查询:

需要返回实体模型,使用DbSet.SqlQuery (context会跟踪,等效于LINQ方式)

需要返回其他类型,使用Database.SqlQuery

原生SQL执行更新:

使用Database.ExecuteSqlCommand

四、常用查询例子

1、EF select 怎么获取最近10天的数据

DateTime now = DateTime.Now;
var res = db.News.Where(p => System.Data.Objects.EntityFunctions.DiffDays(DateTime.Now, p.CreateTime) < 10);
return res.ToList<News>();

2、ef查询部分字段 https://www.cnblogs.com/webapi/p/10449319.html

public string ceshi()
{
dbEntities db = new dbEntities();
var list = db.news.Select(c => new { c.title, c.times }).ToList();//返回结果List<匿名类型>,控制器中直接可访问
string str = string.Empty;
       //List<匿名类型>在控制器中可直接方法,如果view中想使用的话需转换为json对象
foreach (var item in list)
{
str += item.title + "=" + item.times + "<br>";
}
return str;
}

load

Entity Framework查询,EF执行SQl的更多相关文章

  1. Entity Framework Code First执行SQL语句、视图及存储过程

    1.Entity Framework Code First查询视图 Entity Framework Code First目前还没有特别针对View操作的方法,但对于可更新的视图,可以采用与Table ...

  2. 如何得到EF(ADO.NET Entity Framework)查询生成的SQL? ToTraceString Database.Log

    ADO.NET Entity Framework ToTraceString  //输出单条查询 DbContext.Database.Log  //这里有详细的日志

  3. Entity Framework查询原理

    Entity Framework查询原理 前言 Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Rela ...

  4. Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF

    Entity FrameWork(实体框架)是以ADO.NET Entity FrameWork ,简称为EF Entity FrameWork的特点 1.支持多种数据库(MSSQL.Oracle.M ...

  5. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  6. [转]Entity Framework vs. LINQ to SQL

    Entity Framework和LINQ to SQL到底有什么区别?这是一个很常见的问题.下面的表中简要罗列了两种技术的主要区别. LINQ to SQL Entity Framework 复杂度 ...

  7. MVC EF 执行SQL语句(转载)

    MVC EF 执行SQL语句 最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 闲着没事,看了一篇关于LI ...

  8. Entity Framework 与 LINQ to SQL

    Entity Framework和LINQ to SQL到底有什么区别?这是一个很常见的问题.下面的表中简要罗列了两种技术的主要区别. LINQ to SQL Entity Framework 复杂度 ...

  9. Entity Framework查询生成大量的子查询,如何避免?求救

    最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想.经过跟踪sql,我发现很多简单的 ...

随机推荐

  1. Android 自定义Toast,不使用系统Toast

    效果图: 创建Toast类 package com.example.messageboxtest; import android.app.Activity; import android.conten ...

  2. 1833: [ZJOI2010]count 数字计数 - BZOJ

    Description给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次.Input输入文件中仅包含一行两个整数a.b,含义如上所述.Output输出文件中包含一 ...

  3. 【BZOJ】【2463】【中山市选2009】谁能赢呢?

    博弈论 这能算博弈论吗…… orz ZYF so sad……窝智商太低 题解搬运: 当n为偶数时,可以被2*1的骨牌完全覆盖,所以每次都走骨牌的另一端,而另一个人只能走新的骨牌,直到没有为止 当n为奇 ...

  4. 剑指offer--面试题8

    题目:求旋转数组中的最小数字 以下为自己所写代码: #include "stdafx.h" #include <iostream> #include <excep ...

  5. PHP读取xml之cdata讲解

    实例: xss.xml <?xml version="1.0" encoding="UTF-8"?><filters>    <f ...

  6. c# 4.0新特性一览

    原文:http://www.cnblogs.com/palo/archive/2009/03/01/1400949.html 终于静下心来仔细听了一遍Anders Hejlsberg(Visual S ...

  7. Java Notes

    1.java是解释型语言.java虚拟机能实现一次编译多次运行. 2.JDK(java software Development kit 软件开发包),JRE(java Runtime Environ ...

  8. VS2010 MFC DataGrid绑定实例

    VS2010环境下MFC使用DataGrid绑定数据源 参考:http://blog.csdn.net/fddqfddq/article/details/7874706 详细介绍如何在MFC中使用Da ...

  9. 黑马程序员--C#中属性和字段(变量)的区别

    ---------------------- ASP.Net+Android+IOS开发..Net培训.期待与您交流! ---------------------- 属性为类提供了一种很有用的封装数据 ...

  10. OpenStack重启之后,dashboard登录不上去

    ubuntu 12.04装好openstack之后,安装成功,终端打出如下信息: Horizon is now available at http://192.168.0.2/Keystone is ...