Linq to entities 学习笔记
Linq to entities ---提供语言集成查询支持用于在概念模型中定义的实体类型。
首先可以根据http://msdn.microsoft.com/en-us/data/jj206878该网页的learn去设置连接数据、从一个现有的数据库进行逆向工程的模型。
如何从数据库查询呢?通过以下简单的语句我们可以做到
using (var data = new ITshowEntities()) //连接数据
{
var notice =
from 变量 in 数据库.表名 where 表名.列名 = ? //条件语句
select 变量;//返回的是一个表
select 变量.列名;//返回的是一个列
Repeater1.DataSource = notice; //绑定数据到repeater 或者直接就可以 Repeater1.DataSource = data.表名 即可
Repeater1.DataBind();
}
但是这正常是可以实现绑定数据库的功能 但是却出现报错:

后来发现原因是因为我装的vs是12版本的,它默认entities是5.0版本,而若是在vs10版本的话就没有问题,因为10版默认是entities是4.0版本
解决这个的办法就是对这个数据进行处理:
Repeater1.DataSource = notice.ToList(); //绑定数据到repeater 或者直接就可以 Repeater1.DataSource = data.表名.ToList() 即可
Repeater1.DataBind();
如果是多个条件查询的可以有两种方式:
1.运用关系连接符号 && ||
例:where 表名.列名 = ? && 表名.列名 = ?
2.调用两次where
例:where(条件).where(条件)
有没有发现其实 和 C#查询语句差不多呢
如何删除数据库里的数据呢?主要是调用Remove(需要删掉的数据)函数 当然 先前应该查到我们需要的数据 .First()返回的是我们查到满足的数据的第一条
var deldata = from Notice in db.notices //找到删除的数据
where Notice.id == id //条件
select Notice;
deldata.First(); //返回符合的第一条数据
db.notices.Remove(deldata.First()); //删除数据
db.SaveChanges();
Response.Write(@"<script language='javascript'>alert('删除成功!'); //跳出提示框
window.location.href='manage.aspx'</script>");//跳转到指定页面
当然仍然可以用另一种方式实现,也就是说只要三行代码我们即可实现删除了
notice delnotice = db.notices.Where(p => p.id == id).First(); //找到需要删除的数据
db.notices.Remove(delnotice);
db.SaveChanges()
同理修改数据库里的数据也需要先查到需要修改的数据 ,然后再
表名.列名 == (你需要改的数据);
例如
notice updatenotice = db.notices.Where(p => p.id == id1).First(); //找到需要删除的数据
updatenotice.title = TextBox1.Text;
updatenotice.writer = TextBox2.Text;
db.SaveChanges();
那么添加呢:添加不需要再查数据 只用先生成新的存储空间 表名 起的名字 = new 表名(); 然后用表名.列名 == 写入的数据 再调用ADD()函数即可
notice newnotice = new notice(); //生成新的数据
newnotice.title = TextBox1.Text; //写入数据
newnotice.writer = TextBox2.Text; //写入数据
db.notices.Add(newnotice);
db.SaveChanges();
大家有没有发现除了查询数据 ,增加删除修改数据的最后都需要调用SaveChanges();
存储数据的操作
那么如何实现用linq to entites 分页呢?
就需要 调用 skip()take()函数,skip((page-1)*pagesize)这个函数的意思就是查询的时候跳过前面多少条数据
take(pagesize)的意思则是你一页显示多少条。可以写一个函数来进行分页查询:
public void select(int page,int pagesize) //分页查询
{
using (var db = new ITshowEntities())
{
var data = from Notice in db.notices
orderby Notice.date
select Notice;
Label1.Text = Math.Ceiling(data.Count()/pagesize).ToString(); //向上取
Repeater1.DataSource = data.ToList().Skip((page-1)*pagesize).Take(pagesize);//每页显示2行 (分页核心)
Repeater1.DataBind();
}
}
Linq to entities 学习笔记的更多相关文章
- [开发笔记]-Linq to xml学习笔记
最近需要用到操作xml文档的方法,学习了一下linq to xml,特此记录. 测试代码: class Program { //参考: LINQ to XML 编程基础 - luckdv - 博客园 ...
- LINQ to XML学习笔记
一.XML基础知识 1.XML:可扩展标记语言 Extensible Markup Language ,提供了一种保存数据的格式,数据可以通过这种格式很容易地在不同的应用程序之间实现共享. 2.使用X ...
- 30分钟LINQ教程的学习笔记
原文章 : http://www.cnblogs.com/liulun/archive/2013/02/26/2909985.html 一.11个与LINQ有关的语言特性: [隐式类型.匿名类型.对象 ...
- linq学习笔记
最近在学习linq的一些基础知识,看了c#高级编程及阅读了园子内部几篇优秀的博文,有所体会,感觉应该记录下来,作为以后复习使用.都是一些最基础的知识,大致分为三个部分:linq预备知识:linq查询: ...
- Dynamic CRM 2013学习笔记(三十)Linq使用报错 A proxy type with the name account has been defined by another assembly
在CRM中使用linq时,有时会报这个错误: A proxy type with the name account has been defined by another assembly. Curr ...
- MVC学习笔记(四)---使用linq多表联查(SQL)
1.数据库原型(Students表中的ID和Scores表中的StudentID是对应的) 2.实现效果:查询出每个学生各个科目的成绩(用的是MVC学习笔记(三)—用EF向数据库中添加数据的架构) C ...
- LINQ to Entities 不支持 LINQ 表达式节点类型“Invoke”(笔记)
今天使用使用动态查询的时候出现出现错误“LINQ to Entities 不支持 LINQ 表达式节点类型‘Invoke’.”,代码如下: IQueryable<CUSTOMER> que ...
- MVC 学习(一)Linq to Entities 简单Demo
Linq定义了一组标准查询符号,标准查询符允许查询作用于所有基于IEnumerable<T>接口源. 我们看看LINQ的总体架构.如下图所示 EF4.1 数据操作及持久化,常见的是Data ...
- LINQ学习笔记(一)基本语法
1.LINQ简介 LINQ是Language Integrated Query的简称,它是集成在.NET编程语言中的一种特性.包括五个部分:LINQ to Objects.LINQ to DataSe ...
随机推荐
- PHP调用webservice遇到 Soap WSDL Error - "failed to load external entity
本人遇到的原因是服务器上没有安装php-soap centos安装方式: yum install php-soap 安装完成后重启 php-fpm 服务 service php-fpm restart ...
- Excel与Word套打功能使用技巧及EXCEL数据处理成绩
Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...
- VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法
1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...
- C#字节数组转换成字符串
C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...
- Analyzer报表里显示的 * 星号、红叉、#井号的意义
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- ShareSDK 集成 Google+ 登录 400. Error:redirect_uri_mismatch 和 Error Domain=ShareSDKErrorDomain Code=204
最近在集成ShareSDK中 Google+ 登录授权时候 出现了如下几个问题 1. 400. Error:redirect_uri_mismatch 出现这种情况, redirectUri应 ...
- 插件开发-UI插件开发
1.新建类库解决方案,引入命名空间,同时引入要添加UI Form的WebPart(在Portal\UILib目录下) 2.继续UFSoft.UBF.UI.Custom.ExtendedPartBase ...
- 移动端上传图片iphone图片旋转以及服务端处理方法
判断是否需要旋转 /** *iphone判断图片方向,是否需要旋转图片 */ if(strpos($_SERVER['HTTP_U ...
- 程序设计入门——C语言 第7周编程练习 1多项式加法(5分)
第7周编程练习 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统 ...
- centos 更新linux内核
之前一直使用centos 7系统进行开发,centos 7.0 系统自带的linux内核版本为 linx 3.10,最近开发需要使用到socket的reuse port特性,该特性在linux 3.9 ...