(1)//删除操作
public bool delete()
{
try
{
a_context = new AEntities();
b1 = new Table_1();
//删除只需要写主键就行了
b1.id = 3;
a_context.Entry<Table_1>(b1).State = EntityState.Deleted;
a_context.SaveChanges();

return true;
}
catch (Exception)
{
return false;
}
}

(2)//修改链接字符串
public void upConnetionString()
{
a_context = new AEntities();
//设置或者修改链接字符串
a_context.Database.Connection.ConnectionString = "";
}

(3)//查询
public string each()
{
//最简单的,通过遍历表实体把里面的内容取出来
string x = string.Empty;
a_context = new AEntities();
foreach (var tb in a_context.Table_1)
{
x += tb.name;
}
return x;
}

(4)//linq查询
public string LinqEach()
{
string bb = string.Empty;
a_context = new AEntities();
//linq表达式,安装查询顺序写,一般写sql语句是 select xx from xx where xxx,但实际在数据库中语句执行的顺序是:
//第一步.from xxx
//第二步.where xxx
//第三步.select xxx
//而按着执行顺序来写语句,则就是linq语法【发音lin ke】

//tb是变量,和foreach中的变量是一个意思
//linq查询返回值是IQueryable<T>类型,比如这里是IQueryable<Table_1>,但一把是用var表达。IQueryable<T>实现IEnumerable接口,所以可以进行遍历。

//【linq to EF】
//IQueryable<>接口实现类IQueryable接口,而IQueryable里面没有数据,但他里面有三个属性,可以返回查询结构类型,表达式目录树,提供与查询类型相关联的查询程序。这些属性就可以看出是一个工具,用来从数据库中查询数据的。EF框架可以提供多种相关联的查询程序,所有可以linq to object
//所有不能把IQueryable<>的var看成是变量,他是接口,连接着想对应的查询查询程序,不能缓存的

//因为提供的是程序,所以IQueryable<>是在数据库端进行过滤,这就是linq to EF
var x = from tb in a_context.Table_1 //用遍历tb去遍历EF表:a_context.Table_1
where tb.name == "小明" //这里的where就和if()的判断是一个意思,判断是否符合条件,所有里面用的并且或者都用c#得到||额&&等,返回bool类型,通过where在【数据库端】进行筛选过滤,再把筛选后的结果集加载到内存中来,这是一种高效的语法
select tb; //select 的内容和SQL语句一样,可以*,
foreach (var tr in x)
{
bb += tr.name +"|"+ tr.id;
}

//【linq to object】
//当linq to object时候,如: a_context.Table_1.ToArray(),返回值类型则变成IEnumerable<out T>,单单只是实现类IEnumerable而已,因为他没有实现IQueryable接口,无法提供对应的查询查询程序,所以只能是在内存中进行查询过滤
//在内存里进行过滤,linq to object,可以过滤所有继承类IEnumerable接口的类型。
//可以理解为linq是把内存中的集合/表看成一个数据库表,用sql语句进行查询的过程。返回值是可以foreach遍历的类型。

var x2 = from tb in a_context.Table_1.ToArray() //用遍历tb去遍历Array,也可以Dictionary等等,各种反正查询的是List类型的经典集合,不再是EF这样的数据库模型表。是集合...,这是表中的数据全部加载到内存中,如果有1亿条数据呢?....
where tb.name == "小明"
select tb;

//linq 可以 to 任何类型
return bb;
}

(5)//lambda查询
//lambda查询,linq查询和lambda在运行阶段性能是一样的。但编译阶段不同而已(一个linq编译一个lambda编译),编译时间慢点久点没啥关系...所以用这两个一样
//这个语法查询好看点..
public void lambdaEach()
{
a_context =new AEntities();
var dt = a_context.Table_1.Where(u=>u.age>0);
foreach (var u in dt) { }
}

(6)//排序,分页
public void fenYe()
{
//Skip越过的意思,Take获取的意思
a_context = new AEntities();
var tb = a_context.Table_1.Where(u => u.age > 0).OrderBy(u => u.id);//默认是升序
var tb2 = a_context.Table_1.Where(u => u.age > 0).OrderByDescending(u => u.id);//这个是降序
//分页,分页语句没有最好,只有最合适具体情况
var tb3 = a_context.Table_1.Where(u => u.age > 0).OrderByDescending(u => u.id).Skip(5 * (3 - 1)).Take(5);//越过(5 * (3 - 1))条,取(5)条

var tb4 = from u in a_context.Table_1
orderby u.id ascending //linq排序
select u;

var tb5 = (from u in a_context.Table_1
orderby u.id ascending
select u).Skip(5 * (3 - 1)).Take(5); //分页
}

(7)//查询部分
public void eachBf()
{

a_context = new AEntities();
//linq
var tb = from u in a_context.Table_1
select u.name; //和sql语句一样,这样只查询name的值
var tb2 = from u in a_context.Table_1
select new { u.name, u.id, xx = u.name.Count() }; //查询多个用new创建匿名函数来用,xx = u.name.Count()获取行数,只要能点出来就能进行查询,叼...
//lambda
var tb3 = a_context.Table_1.Where(u => u.age > 0).Select(u => new { u.id,u.name,xx=u.name.Count() });
}

EF删除,查询,Linq查询,Lambda查询,修改链接字符串的更多相关文章

  1. 浅谈sql 、linq、lambda 查询语句的区别

    浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...

  2. sql 、linq、lambda 查询语句的区别

    LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...

  3. sql、linq和lambda查询语句比较inner join和group by组合使用及匿名类型的处理

    使用EF自己做的小功能需要遇到inner join和group by组合使用及匿名类型的处理,搜了很多,基本不能满足自己的需要,所以总结了也实现了就自己写出来,已备查看及伙伴查询参考(一般的语句查询就 ...

  4. linq 和lambda查询

    EF 查询的两种 写法. linq 方法 或者 lambda方法 其中 ,只有tolist()的时候,才会真正的 在数据库中执行. 如果没有 tolist 方法,那么province1是 iqueab ...

  5. EF中使用linq进行关联查询

    EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的.所以不会影响查询的性能 public void TestLinq() { ...

  6. Linq 和 Lambda 查询中按照多个值进行分组GroupBy

    创建要查询的对象: class Employee { public int ID { get;set; } public string FName { get; set; } public int A ...

  7. sql 、linq、lambda 查询语句

    http://www.cnblogs.com/lei2007/archive/2011/07/21/2113161.html

  8. EF中使用Linq的Lambda比较字符串格式日期大小

    在使用EF时,想要比较字符串类型的日期时,参考以下: SQL语句: 1)select * from TableName where StartTime > ‘2015-04-08‘ 2)sele ...

  9. MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))

    目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.S ...

随机推荐

  1. Python 字符串相似性的几种度量方法

    字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是:把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种 ...

  2. Lua学习笔记(1)

    1.chunk是可以把Lua识别并执行的代码.chunk可以是单条语句,也可以是一系列语句的组合,还可以是函数,或是一个代码文件,交互模式下的每条指令(一行或多行)都是一个chunk交互模式下,判断指 ...

  3. Python [Leetcode 374]Guess Number Higher or Lower

    题目描述: We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have t ...

  4. bzoj 3192 删除物品

    Written with StackEdit. Description 箱子再分配问题需要解决如下问题: (1)一共有\(N\)个物品,堆成\(M\)堆. (2)所有物品都是一样的,但是它们有不同的优 ...

  5. Thinking in Java 4th(Java编程思想第四版)文档、源码、习题答案

    Thinking in Java 4th 中.英文两版pdf文档,书中源码及课后习题答案.链接:https://pan.baidu.com/s/1BKJdtgJ3s-_rN1OB4rpLTQ 密码:2 ...

  6. Consul做服务发现

    使用Consul做服务发现的若干姿势 https://www.cnblogs.com/bossma/p/9756809.html 从2016年起就开始接触Consul,使用的主要目的就是做服务发现,后 ...

  7. 启动tomcat7w.exe提示"指定的服务未安装"

    说下本人的情况:因为重装系统,安装在C盘的tomcat的失去作用.想要启动tomcat7w.exe(这是管理服务的)出现“指定服务未安装,无法打开tomcat7服务”的提示.原因是重装系统也导致之前安 ...

  8. COGS 2638. 数列操作ψ 线段树

    传送门 : COGS 2638. 数列操作ψ 线段树 这道题让我们维护区间最大值,以及维护区间and,or一个数 我们考虑用线段树进行维护,这时候我们就要用到吉司机线段树啦 QAQ 由于发现若干次an ...

  9. computed属性与methods、watched

    一.计算属性 new Vue({ data: { message: 'hello vue.js !' }, computed: { reverseMessage: function () { retu ...

  10. django中的@login_required

    转:http://www.cnblogs.com/ccorz/p/Django-zhong-loginrequired-yong-fa-jian-jie.html 1.网站开发时的登录需求: ===用 ...