EF 的 CURD 操作
EF 的 CURD 操作
这里采用了数据库 Northwind,下载地址:https://northwinddatabase.codeplex.com/
增
/// <summary>
/// 添加
/// </summary>
/// <returns></returns>
public static int Add()
{
using (var db = new NorthwindEntities())
{
var customer = new Customers()
{
CustomerID = "fanguza",
Address = "地球",
City = "广东",
Phone = "",
CompanyName = "博客园",
ContactName = "反骨仔"
}; //方法一
//db.Customers.Add(customer); //方法二
var entry = db.Entry(customer);
entry.State = EntityState.Added; return db.SaveChanges();
}
}
删
/// <summary>
/// 删除
/// </summary>
/// <returns></returns>
static int Delete()
{
using (var db = new NorthwindEntities())
{
var customer = new Customers()
{
CustomerID = "fanguzi"
}; db.Customers.Attach(customer);
db.Customers.Remove(customer); return db.SaveChanges();
}
}
改
/// <summary>
/// 编辑(修改)
/// </summary>
/// <returns></returns>
static int Edit()
{
using (var db = new NorthwindEntities())
{
var customer = db.Customers.FirstOrDefault(u => u.CustomerID == "fanguzai"); if (customer == null)
{
return ;
} customer.ContactName = "erwuzai";
return db.SaveChanges();
}
}
查
/// <summary>
/// 查询
/// </summary>
static Customers Query()
{
using (var db = new NorthwindEntities())
{
var query =
db.Customers.Where(u => u.ContactName == "fanguza").OrderBy(u => u.ContactName).Take(); return query.FirstOrDefault();
}
}
分页
public IQueryable<Customers> GetPageOfCustomerses<TKey>(int pageIndex, int pageSize,
Expression<Func<Customers, bool>> wherExpression,
Expression<Func<Customers, TKey>> orderByExpression)
{
using (var db = new NorthwindEntities())
{
//分页前需要排序
return db.Customers.Where(wherExpression).OrderBy(orderByExpression).Skip((pageIndex - ) * pageSize).Take(pageSize);
}
}
批量增加
static void BatchAdd()
{
using (var db = new NorthwindEntities())
{
for (var i = ; i < ; i++)
{
var customer = new Customers()
{
CustomerID = "fanguzai" + i,
Address = "中国",
City = "广州",
Phone = "" + i,
CompanyName = "阳春一中",
ContactName = "反骨仔" + i
}; db.Customers.Add(customer);
} db.SaveChanges();
}
}
其它
public IQueryable<Customers> GetCustomerses<TKey>(Expression<Func<Customers, bool>> whereExpression,
Expression<Func<Customers, TKey>> orderExpression)
{
using (var db = new NorthwindEntities())
{
return db.Customers.Where(whereExpression).OrderBy(orderExpression);
}
}
EF 的 CURD 操作的更多相关文章
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
- 关于有默认值的字段在用EF做插入操作时的思考(续)
问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...
- MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)
回到目录 我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋 ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- 关于有默认值的字段在用EF做插入操作时的思考
今天在用EF做插入操作的时候发现数据库中一个datetime类型的字段(CreateDate)的值居然全部为null.于是赶紧看表结构发现CreateDate字段居然是允许为空的. 虽然为空,但是设置 ...
- php对xml文件进行CURD操作
XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: ...
- MongoDB的安装及CURD操作
MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...
- LINQ-to-SQL那点事~利用反射在LINQ-to-SQL环境中实现Ado.net的CURD操作
回到目录 对于linq to sql提供的CURD操作,给我们的感觉就是简单,容易使用,更加面向对象,不用拼SQL语句了,这些好处都表示在处理单条实体或者集合长度小的情况下,如果有一个1000条的集合 ...
- Laravel框架数据库CURD操作、连贯操作
这篇文章主要介绍了Laravel框架数据库CURD操作.连贯操作.链式操作总结,本文包含大量数据库操作常用方法,需要的朋友可以参考下 一.Selects 检索表中的所有行 $users = DB::t ...
随机推荐
- Nginx如何对日志文件进行配置?
在我们日常工作开发中,对调试bug最重要的手段就是查看日志和断点调试了. 今天我们来说日志文件,Nginx的日志文件一般保存的是访问日志和错误日志. 1. 用来log_format指令设置日志格式 l ...
- [LeetCode] Masking Personal Information 给个人信息打码
We are given a personal information string S, which may represent either an email address or a phone ...
- Python函数式编程之lambda表达式
一:匿名函数的定义 lambda parameter_list: expression 二:三元表达式 条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果 三:map map(f ...
- [VUE]object.defineProperty的基本使用
1.object.defineProperty 给一个对象定义一个新的属性或者在修改一个对象现有的属性,并返回这个对象 语法: Object.defineProperty(参数1,参数2,参数3) 参 ...
- java 加解密
import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingExc ...
- QEMU KVM Libvirt手册(9): network
虚拟网卡由-net nic定义 # qemu-system-x86_64 -enable-kvm -name ubuntutest -m 2048 -hda ubuntutest.img -vnc ...
- .NET Standard 2.0正式发布了
亦可赛艇 前天(2017年8月14日),.NET Standard 2.0正式版终于发布了,与之相配套的.NET Core 2.0也同时正式发布,真是令人振奋. 详情请看:https://blogs. ...
- NeuChar 平台使用及开发教程(一):开始使用 NeuChar
如果您还不知道什么是 NeuChar,或者我们为什么要做 NeuChar,请看这里. 角色 NeuChar 打通了从开发者到终端用户的完整的上下游链路,了解 NeuChar 之前,先要明确两个角色身份 ...
- Linux 安装 Kafka
1. 下载安装包 官网下载地址:http://kafka.apache.org/downloads 选择一个版本下载,然后解压安装包. 2. 基本使用 2.1 启动kafka bin/zookeepe ...
- Centos7中文乱码问题的解决
刚安装centos7之后,语言默认不是中文,导致中文路径或中文文件在系统中显示为乱码,查了些资料解决了这个问题. 1 查看和安装中文库 [root@bogon ~]# echo $LANG zh_CN ...