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 ...
随机推荐
- 你不知道的JS之作用域和闭包 附录
原文:你不知道的js系列 A 动态作用域 动态作用域 是和 JavaScript中的词法作用域 对立的概念. 动态作用域和 JavaScript 中的另外一个机制 (this)很相似. 词法作用域是 ...
- Python-JSON和pickle
笔记:一:简介 (1)JSON (JavaScript Object Notation) 是一种轻量级(XML重量级)的数据交换格式. 是为了数据交换而定制的一种规则,它基于ECMAScript的一个 ...
- React state和props使用场景
一个组件的显示状态可以由内部状态state.外部参数props所决定. props: 1.props 是从外部传进组件的参数,主要是父组件向子组件传递数据. 2.props 对于使用它的组件来说是只读 ...
- 安卓开发学习笔记(七):仿写腾讯QQ登录注册界面
这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式. 废话不多说,直接上代码:一.activity. ...
- Selenium自动化测试插件—Katalon的自述
Katalon-一款好用的selenium自动化测试插件 Selenium 框架是目前使用较广泛的开源自动化框架,一款好的.基于界面的录制工具对于初学者来说可以快速入门:对于老手来说可以提高开发自动化 ...
- Linux下源码安装并配置Nginx
实验环境 一台最小化安装的CentOS 7.3 虚拟机 安装nginx 安装nginx依赖包 yum install -y pcre-devel zlib-devel openssl-devel wg ...
- [Swift]LeetCode331. 验证二叉树的前序序列化 | Verify Preorder Serialization of a Binary Tree
One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, ...
- [Swift]LeetCode396. 旋转函数 | Rotate Function
Given an array of integers A and let n to be its length. Assume Bk to be an array obtained by rotati ...
- [Swift]LeetCode745. 前缀和后缀搜索 | Prefix and Suffix Search
Given many words, words[i] has weight i. Design a class WordFilter that supports one function, WordF ...
- mac连接windows远程桌面及文件复制
最近更换mac办公,但由于之前是用windows,所以很多文件项目之类的东西都还在windows电脑中,一次都传到mac上又会比较占内存,并且使用率也不高,感觉不划算.但每次想用的时候,在从windo ...