/// <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. UNIX标准化及实现之POSIX标准可选头文件

    POSIX标准定义的可选头文件 头文件 说明 <aio.h> 异步I/O <mqueue.h> 消息队列 <pthread.h> 线程 <sched.h> ...

  2. C语言的ANSI/ISO标准

    摘自:http://see.xidian.edu.cn/cpp/html/1658.html 从技术上讲有两种C语言标准,一种来自ANSI(American National Standard Ins ...

  3. Monolog - Logging for PHP 5.3+

    Monolog 是PHP的一个日志类库.相比于其他的日志类库,它有以下的特点: 功能强大.可以把日志发送到文件.socket.邮箱.数据库和各种web services. 遵循 PSR3 的接口规范. ...

  4. 电商平台如何接入快递鸟电子面单API?

    快递鸟是全球物流接口服务商,为电商 ERP.电商平台.仓储.清关公司提供物流跟踪.电子面单.智选物流.物流金融.在线下单等服务,解决电商的物流管理模块和金融模块.现就对快递鸟电子面单API做基本描述, ...

  5. python 调用zabbix api接口实现主机的增删改查

    python程序调用zabbix系统的api接口实现对zabbix_server端主机的增删改查,使用相关功能时候,需要打开脚本中的相关函数. 函数说明: zabbixtools()  调用zabbi ...

  6. 初始tornado框架

    2.7版本的一个简单的框架 from wsgiref.simple_server import make_server def new(): return 'new' def index(): ret ...

  7. [Javascript,JSON] JQuery处理json与ajax返回JSON实例

    转自:http://www.php100.com/html/program/jquery/2013/0905/5912.html [导读] json数据是一种经型的实时数据交互的数据存储方法,使用到最 ...

  8. LeetCode 274

    H-Index Given an array of citations (each citation is a non-negative integer) of a researcher, write ...

  9. hdu 4632 动态规划

    思路:dp[i][j]表示区间(i,j)中回文串的个数,那么dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1]:如果str[i]==str[j],那么dp[i][j ...

  10. oracle 9i 中行转列

    示例如下: SELECT deptno , LTRIM(MAX(SYS_CONNECT_BY_PATH(ename,',')) KEEP (DENSE_RANK LAST ORDER BY curr) ...