【原】EF简单使用
/// <summary>
/// 数据上下文对象
/// </summary>
static TestEntities te = new TestEntities();
static void Main(string[] args)
{ 执行方法(); Console.ReadKey();
} #region 新增
static void Add()
{
//创建实体对象
User uObj = new User() { UName = "刘涛", UPwd = "testpwd" };
//通过EF新增到数据库中
//将对象加入到数据上下文的users集合中
te.Users.Add(uObj);
//调用 数据上下文的保存方法,将对象存储到数据库中
te.SaveChanges();
Console.WriteLine("保存成功!");
}
#endregion
#region 即时查询
static void Query()
{
List<User> list = te.Users.Where(u => u.UName == "刘涛"&&u.Uids==).ToList();
list.ForEach(u => Console.WriteLine(u.ToString()));
}
#endregion
#region 延时查询
static void Query1()
{ //集合的标准查询运算符方法,是来自于System.Linq.Enumerable里给IEnumerable接口添加的扩展方法
//EF上下文里的DBSet<T>里的标准查询运算符来自于System.Linq.Queryabl给IQueryable接口添加的扩展方法;
//延时加载
//System.Data.Entity.Infrastructure.DbQuery<User> i = te.Users.Where(u => u.UName == "刘涛").OrderByDescending(u => u.UPwd) as System.Data.Entity.Infrastructure.DbQuery<User>;
//User user1 = i.FirstOrDefault();
//延迟加载,针对于外键实体的延迟
IQueryable<UsersDetail> address = te.UsersDetails.Where(a => a.udUid == );
//此时只查询了地址表
UsersDetail addr01 = address.FirstOrDefault();
//查询了地址对应的用户表
Console.WriteLine(addr01.User.UName);
//按需加载的缺点,数据量大的时候会为每次调用外键实体时,都会去查询数据库,EF有小优化:相同的外键实体,只查一次;
IQueryable<UsersDetail> addrs = te.UsersDetails;
foreach (UsersDetail item in addrs)
{
Console.WriteLine(item.udAddress+":userName="+item.User.UName);
} // Console.WriteLine(user1.UPwd.ToString()); }
#endregion
#region 修改
static void Edit()
{
//查询出一个要修改的对象
User usr = te.Users.Where(u => u.Uids == ).FirstOrDefault();
//修改内容
Console.WriteLine("修改前" + usr.ToString());
usr.UName = "测试修改";
//重新保存到数据库
te.SaveChanges();
Console.WriteLine("修改后" + usr.ToString());
Console.WriteLine("修改内容成功!");
}
#endregion
#region 删除
static void Delete()
{
//创建要删除的对象
User u = new User();
u.Uids = ;
//附加到EF中
te.Users.Attach(u);
//标记为删除
te.Users.Remove(u);
//执行删除SQL
te.SaveChanges();
Console.WriteLine("删除成功!");
}
#endregion
【原】EF简单使用的更多相关文章
- EasyUI+MVC+EF简单用户管理Demo(问题及解决)
写在前面 iframe-src EntityFramework版本 connectionStrings View.Action.页面跳转 EasyUI中DataGrid绑定 新增.修改和删除数据 效果 ...
- ASP.NET MVC学习---(三)EF简单增删改查
那么现在我们已经大概从本质上了解了ef 巴拉巴拉说了一大堆之后 总算要进入ef的正题了 总在口头说也太不行了是吧~ 没错,现在要用ef进行一些实际的操作 做什么呢? 就做一个入门级的增删改查操作吧 废 ...
- [原]一个简单的Linux TCP Client所涉及到的头文件
今天在Linux环境下写了一个最简单的TCP Client程序,没想到Linux环境下的头文件竟然这么分散,让我这样的菜鸟很是郁闷啊.编译成功的代码如下: #include <iostream& ...
- 【EF学习笔记04】----------EF简单增删改查
第一步:创建上下文对象 using(var db = new Entities()) { //数据操作 } 新增 UserInfo user = new UserInfo() { UserName = ...
- EF 简单介绍<一>
一:EF概述 Entity Framework(EF)是一个开源的“对象/关系映射(ORM:Object Relational Mapping)”框架,使应用程序可以使用一种“纯”的对象模型来访问关系 ...
- EF简单的CURD操作
/// <summary> /// EF添加数据 /// </summary> /// <param name="sender"></pa ...
- 步步为营-93-MVC+EF简单实例
1:创建MVC项目 2:添加EF数据(这里选择DataBaseFirst模式) 3:添加控制器 3.1.1 创建列表页面 3.1.2 html页面 @using MvcApplication1 @{ ...
- [EF]使用EF简单增删改查
目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping) ...
- [原]实例-简单设计&精简代码&复用代码
引言 本文以实际项目为例谈一谈我个人对于软件开发的理解,偏细节 软件项目B 基于.net平台,使用WPF框架,c#语言,MVVM模式开发的桌面软件 该软件支持可视化的设计器功能,允许所见即所得的方 ...
随机推荐
- 项目源码--Android3D影音播放器源码
下载源码 技术要点: 1.本地音乐管理 2.音频流的解码 3. UI控件的综合使用 4. 视频流的解码 5. 动态更换皮肤 6. 3D效果的实现 7. 源码带详细的中文注释 ...... 详细 ...
- Redis 数据备份与恢复
Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1: ...
- 使用c3p0连接池
首先我们需要知道为什么要使用连接池:因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉,每次新建连接都需要140毫秒左右的时间而C3P0连接池会池化连接,随 ...
- 1. Android 系统上一款开源的图表库
1. MPAndroidChart MPAndroidChart 是 Android 系统上一款开源的图表库.目前提供线图和饼图,支持选择.缩放和拖放. 一个可以拖动缩放的图表库,包含曲线图.直方图 ...
- 数据结构笔记02:Java面试必问算法题
1. 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min()的 ...
- ios数据缓存方法
转载自:http://zhidao.baidu.com/link?url=jNTz6lkL1way8bJ-WPY197Pe9aEM_ql-MZbVJsM5tXr7Mv82W70QQ5a9UlvhMMS ...
- Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换2,使用导航栏控制,以及视图之间传值。
首先需要说明的是每个应用程序都是一个window,背景色为黑色.在window上可以跑多个view进行来回切换,下面就通过手动写代码来体现导航栏切换view的原理. 第一步,新建一个single vi ...
- python中那些双下划线开头得函数和变量--转载
Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __x ...
- Angular 2.0 从0到1 (六)
第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2.0 从0到1 (三)第四节:Angular 2.0 从0到1 (四)第五节: ...
- framework7学习笔记
最近因项目需要学习framework7,简称F7.对于自己遇到的问题和学习到的东西做个简单记录. 问题:刚开始获取json,页面上一直不显示,不得其法,原来是json文件需要在弹出层打开之后在来加载, ...