了解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

时间: 2024-10-07 09:38:09

了解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. You can execute the following types of queries: SQL query for entity types which returns particular types of entities SQL query for non-entity types w

Entity Framework学习(一) - Entity Framework Add and Attach and Entity States

Entity Framework Add and Attach and Entity States Entity Framewokr 新增.附加.实体状态 This topic will cover how to add and attach entities to a context and how Entity Framework processes these during SaveChanges. Entity Framework takes care of tracking the s

(摘)Entity Framework Core 2.1带来更好的SQL语句生成方案

微软发布了Entity Framework Core2.1,为EF开发者带来了很多期待已久的特性.EF Core 2.1增加了对SQL GROUP BY的支持,支持延迟加载和数据种子等. EF Core 2.1的第一个重要新增特性是将GroupBy操作符翻译成包含GROUP BY子句的SQL.缺乏这种支持被认为是EF Core 2.0中的一个重大疏漏. 同样,对延迟加载的支持也被纳入到EF Core 2.1中.为了支持延迟加载,现在实体的构造函数可以包含参数.在定义好构造函数后,EF Core可

Entity Framework学习(二) - Entity Framework Automatic Detect Changes

When using most POCO entities the determination of how an entity has changed (and therefore which updates need to be sent to the database) is handled by the Detect Changes algorithm. Detect Changes works by detecting the differences between the curre

从Entity Framework的实现方式来看DDD中的repository仓储模式运用

一:最普通的数据库操作 static void Main(string[] args) { using (SchoolDBEntities db = new SchoolDBEntities()) { db.Students.Add(new Student() { StudentName = "nihao" }); db.SaveChanges(); } } domain 和 db 是怎么操作... DbSet<Student> 集合 [用于存放集合] 从名称中可以看出,是

Entity Framework 4.1 之八:绕过 EF 查询映射

原文名称:Entity Framework 4.1: Bypassing EF query mapping (8) 原文地址:http://vincentlauzon.wordpress.com/2011/04/21/entity-framework-4-1-bypassing-ef-query-mapping-8/ 看到 Entity Framework 4.1 推荐英文教程,为了帮大家看起来方便一些,简单翻译一下.这是一个系列,共有 8 篇,这是第 8 篇. Entity Framework

重新认识了下Entity Framework

什么是Entity Framework Entity Framework是一个对象关系映射O/RM框架. Entity Framework让开发者可以像操作领域对象(domain-specific objects)那样操作关系型数据(relational data). Entity Framework减少了大部分通常需要编写的数据操作代码. Entity Framework中可以使用LINQ来查询数据,使用强类型(strongly typed objects)来检索和操作数据. Entity F

第一篇:Entity Framework 简介

先从ORM说起吧,很多年前,由于.NET的开源组件不像现在这样发达,更别说一个开源的ORM框架,出于项目需要,以及当时OOP兴起(总不至于,在项目里面全是SQL语句),就自己开始写ORM框架.要开发ORM框架首先要了解ORM概念. ORM 对象关系映射,O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类.R(Relation) 关系数据,M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程. 更加直观理解就是,ORM 就是以OO

重新认识Entity Framework

什么是Entity Framework Entity Framework是一个对象关系映射O/RM框架. Entity Framework让开发者可以像操作领域对象(domain-specific objects)那样操作关系型数据(relational data). Entity Framework减少了大部分通常需要编写的数据操作代码. Entity Framework中可以使用LINQ来查询数据,使用强类型(strongly typed objects)来检索和操作数据. Entity F