了解entity framework其他query方式之Entity SQL,Raw Sql分析
一:linq 对ef来说不是唯一性的query。。。
二:Entity Sql
1. esql => entity sql... 【类sql的语言】 和sql差不多,但是呢,不是sql。。。
using (SchoolDBEntities db = new SchoolDBEntities())
{
//Querying with Object Services and Entity SQL
string sqlString = "select Value s from SchoolDBEntities.Students as s"; //select * from Student
var objctx = (db as IObjectContextAdapter).ObjectContext;
ObjectQuery<Student> student = objctx.CreateQuery<Student>(sqlString);
var query = student.ToList();
}
了解大概的一个语法。。。
官网: https://msdn.microsoft.com/zh-cn/library/bb399560.aspx
2. EntityConnection,EntityCommand....
使用原声一点各种命令
using (var con = new EntityConnection("name=SchoolDBEntities"))
这里的【name=SchoolDBEntities】 就是获取Appconfig中的SchoolDBEntities节点的数据库连接串
using (var con = new EntityConnection("name=SchoolDBEntities"))
{
con.Open();
EntityCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT VALUE st FROM SchoolDBEntities.Students as st where st.StudentName='nihao'";
Dictionary<int, string> dict = new Dictionary<int, string>();
using (EntityDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.CloseConnection))
{
while (rdr.Read())
{
int a = rdr.GetInt32(0);
var b = rdr.GetString(1);
dict.Add(a, b);
}
}
}
rsql => raw sql ... 【直接灌入sql到db中】
大家根据自己的爱好进行选择。。。
3. rsql:
《1》 repository中的rsql查询。。。。
CURD操作。。。
1. R: var query = db.Students.SqlQuery("select * from Student").ToList();
《2》 在database level上
1. R: var query = db.Database.SqlQuery<Student>("select * from Student").ToList();
2. C,U,D var query = db.Database.ExecuteSqlCommand("update Student set StudentName='jack2' where StudentName='jack'");
linq太复杂,不好写。。。即使有了linqer,linqpad。。。 linq <=> sql
了解entity framework其他query方式之Entity SQL,Raw Sql分析的更多相关文章
- Entity Framework Tutorial Basics(39):Raw SQL Query
Execute Native SQL Query You can execute native raw SQL query against the database using DBContext. ...
- Entity Framework 学习之--Ling to entity实现分页
最近用MVC做的一个项目涉及到分页,中间用了entity framework来查数据库,不用直接写sql语句,方便了很多. 一般分页的思路是获得两个变量的值: 1.一共有多少条记录 totalCoun ...
- The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name
可以强迫部署EntityFramework.SqlServer.dll这个文件到输出目录 找到1个老外的帖子,戳这里(本人测试无效,大家有可能试一下..) 解决方案以下: 在EF的上下文代码CS文件( ...
- (摘)Entity Framework Core 2.1带来更好的SQL语句生成方案
微软发布了Entity Framework Core2.1,为EF开发者带来了很多期待已久的特性.EF Core 2.1增加了对SQL GROUP BY的支持,支持延迟加载和数据种子等. EF Cor ...
- Entity Framework入门教程(1)---Entity Framework简介
什么是Entity Framework 学习EF的前提:熟练使用Linq和Ado.net,因为在使用EF框架进行开发时,我们大多数情况使用Linq进行查询和操作,而EF的底层实现用的是Ado.net. ...
- Entity Framework Core Query Types
This feature was added in EF Core 2.1 Query types are non-entity types (classes) that form part of t ...
- 从Entity Framework的实现方式来看DDD中的repository仓储模式运用
一:最普通的数据库操作 static void Main(string[] args) { using (SchoolDBEntities db = new SchoolDBEntities()) { ...
- 10、Entity Framework Core 3.1入门教程-执行原生SQL
本文章是根据 微软MVP solenovex(杨旭)老师的视频教程编写而来,再加上自己的一些理解. 视频教程地址:https://www.bilibili.com/video/BV1xa4y1v7rR ...
- 第三篇 Entity Framework Plus 之 Query Cache
离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 A ...
随机推荐
- Android 4 学习(17):使用Content Resolver
Content Resolver简介 每个应用程序都有一个ContentResolver实例,通过getContentResolver()方法可以获取: ContentResolver cr = ge ...
- 03-22 Ajax验证用户登录
在网页中一般是通过表单提交数据,而表单获取信息,抛弃当前页面重新加载一个新页面. 现在,在webform网页中可以通过JueryAjax提交.处理数据的方式,达到异步刷新页面. 表单提交数据和Juer ...
- AndroidManifest.xml中声明权限——各种permission含义摘录
android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android. ...
- DOS口令启用停用的管理员密码
运行,输入cmd,但是不回车,鼠标右键cmd那个 快捷方式,有个以管理员身份运行,进入的dos是 c:\windows\system32> 输入 c:\windows\s ...
- angular.module方法
关于module的定义为:angular.module(‘com.ngbook.demo’, []).关于module函数可以传递3个参数,它们分别为: name:模块定义的名称,它应该是一个唯一的必 ...
- mySQL中插入多条记录
用一条INSERT向SQL中插入多条记录 2008-12-22 10:07:01| 分类: 记事本_编程技术|举报|字号 订阅 Sql 语法: 插入多行记录 Insert Into Tabl ...
- Android基础之sqlite 数据库简单操作
尽管很简单,但是也存下来,以后直接粘过去就能用了. public class DBHelper extends SQLiteOpenHelper { private static final ...
- JAVA中List的三个子类。
JAVA中List的三个子类分别是:ArrayList,Vector,LinkList.下面就来比较一下他们的不同. ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高. Ve ...
- Nginx 源码完全注释(11)ngx_spinlock
Nginx 是多进程模式的,一个 master 与多个 workers,一般工作在多核 CPU 上,所以自旋锁就是必须用到的.Nginx 中的自旋锁的定义,位于 ngx_spinlock.c 中,如下 ...
- 在tomcat中的conf文件夹下找server.conf 配置如下代码,可省略项目名路径访问 如 localhost:8080 即可访问到项目
<Context path="" docBase="C:\Workspaces\Projects\SLSaleSystem_dw\WebRoot" rel ...