/// <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简单使用的更多相关文章

  1. EasyUI+MVC+EF简单用户管理Demo(问题及解决)

    写在前面 iframe-src EntityFramework版本 connectionStrings View.Action.页面跳转 EasyUI中DataGrid绑定 新增.修改和删除数据 效果 ...

  2. ASP.NET MVC学习---(三)EF简单增删改查

    那么现在我们已经大概从本质上了解了ef 巴拉巴拉说了一大堆之后 总算要进入ef的正题了 总在口头说也太不行了是吧~ 没错,现在要用ef进行一些实际的操作 做什么呢? 就做一个入门级的增删改查操作吧 废 ...

  3. [原]一个简单的Linux TCP Client所涉及到的头文件

    今天在Linux环境下写了一个最简单的TCP Client程序,没想到Linux环境下的头文件竟然这么分散,让我这样的菜鸟很是郁闷啊.编译成功的代码如下: #include <iostream& ...

  4. 【EF学习笔记04】----------EF简单增删改查

    第一步:创建上下文对象 using(var db = new Entities()) { //数据操作 } 新增 UserInfo user = new UserInfo() { UserName = ...

  5. EF 简单介绍<一>

    一:EF概述 Entity Framework(EF)是一个开源的“对象/关系映射(ORM:Object Relational Mapping)”框架,使应用程序可以使用一种“纯”的对象模型来访问关系 ...

  6. EF简单的CURD操作

    /// <summary> /// EF添加数据 /// </summary> /// <param name="sender"></pa ...

  7. 步步为营-93-MVC+EF简单实例

    1:创建MVC项目 2:添加EF数据(这里选择DataBaseFirst模式) 3:添加控制器 3.1.1 创建列表页面 3.1.2 html页面 @using MvcApplication1 @{ ...

  8. [EF]使用EF简单增删改查

    目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping) ...

  9. [原]实例-简单设计&精简代码&复用代码

    引言 本文以实际项目为例谈一谈我个人对于软件开发的理解,偏细节   软件项目B 基于.net平台,使用WPF框架,c#语言,MVVM模式开发的桌面软件 该软件支持可视化的设计器功能,允许所见即所得的方 ...

随机推荐

  1. gradle使用小记

    1.全局排除依赖: allprojects {    apply plugin: 'java'    apply plugin: 'eclipse'    apply plugin: 'maven-p ...

  2. 使用phpExcel向mysql数据库导入excel

    使用phpExcel向mysql数据库导入excel from:http://blog.163.com/dustye_l/blog/static/172439513201242491016834/ 使 ...

  3. 用CAS操作实现Go标准库中的Once

    Go标准库中提供了Sync.Once来实现"只执行一次"的功能.学习了一下源代码,里面用的是经典的双重检查的模式: // Once is an object that will p ...

  4. 实例源码--Android的ListView控件的总结

    下载源码   技术要点: 1.ListView控件的总结 2.微信ListView气泡的实现 3.ListView仿优酷播放列表 4.ListView刷新列表 5.详细的源码注释 ...... 详细介 ...

  5. 小白日记13:kali渗透测试之服务扫描(三)-SMTB扫描、防火墙识别、负载均衡识别、WAF识别

    SMTP扫描 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/ ...

  6. C. Guess Your Way Out!

    C. Guess Your Way Out!                                                               time limit per ...

  7. Android自定义View,高仿QQ音乐歌词滚动控件!

    最近在以QQ音乐为样板做一个手机音乐播放器,源码下篇博文放出.今天我想聊的是这个QQ音乐播放器中歌词显示控件的问题,和小伙伴们一起来探讨怎么实现这个歌词滚动的效果.OK,废话不多说,先来看看效果图: ...

  8. cocos2d-x lua 使用http(下载图片, POST JSON)

    cocos2d-x lua 使用http(下载图片, POST JSON) version: cocos2d-x 3.6 1.使用http post json与服务器交互 require(" ...

  9. Java设计模式15:常用设计模式之享元模式(结构型模式)

    1. Java之享元模式(Flyweight Pattern) (1)概述:       享元模式是对象池的一种实现,英文名为"Flyweight",代表轻量级的意思.享元模式用来 ...

  10. iOS “获取验证码”按钮的倒计时功能

    iOS 的倒计时有多种实现细节,Cocoa Touch 为我们提供了 NSTimer 类和 GCD 的dispatch_source_set_timer方法去更加方便的使用计时器.我们也可以很容易的的 ...