.Net EntityFramwork6.0 EF框架开发入门


- [Table("User")]
- public class User
- {
- [Display(Name="id")]
- public int Id {get;set;}
- [Display(Name="UserName")]
- [Required(ErrorMessage="用户名必填")]
- public string UserName { get; set; }
- [Display(Name="Password")]
- public string Password { get; set; }
- }
- public class DemoConnectionContext : DbContext
- {
- public DbSet<User> dbuser { get { return Set<User>(); } }
- public DemoConnectionContext()
- : base("name=DemoConnectionContext") //指定数据库访问串
- {
- }
- static DemoConnectionContext()
- {
- Database.SetInitializer<DemoConnectionContext>(new DropCreateDatabaseIfModelChanges<DemoConnectionContext>());
- }
- }
3.数据库操作
- //声明数据库操作类
DemoConnectionContext db = new DemoConnectionContext();
a)、增加数据
- User user = new Models.User{UserName = "jay", Password = ""};
- db.dbuser.Add(user);
- db.SaveChanges();
b)、查询数据
- //指定ID查询
- var userObj=db.dbuser.Find(); //写法一
- var userObj = db.dbuser.Where(u => u.Id == ).FirstOrDefault(); //写法二
- //写法三
- var userObj = (from u in db.dbuser
- where u.Id ==
- select u).ToList();
c)、更新数据
- //更新表
- var userObj = (from u in db.dbuser
- where u.UserName == "jay"
- select u).ToList();
- userObj[].Password = "";
- db.dbuser.Attach(userObj[]);
- //更新指定列
- var setEntry = ((IObjectContextAdapter)db).ObjectContext.ObjectStateManager.GetObjectStateEntry(userObj[]);
- setEntry.SetModifiedProperty("Password");
- db.SaveChanges();
d)、删除数据
- //删除数据 指定ID即可
- User userObj = new User { Id = };
- db.dbuser.Attach(userObj);//附加对象
- db.dbuser.Remove(userObj);//删除对象
- db.SaveChanges();
e)、事物操作 多表操作,操作放在 TransactionScope
- try
- {
- //事物 多表操作,操作放在 TransactionScope
- using (var trac = new TransactionScope())
- {
- User user = new User { UserName = "jack", Password = "" };
- db.dbuser.Add(user);
- //throw new Exception("抛出异常");
- user = new User { UserName = "David", Password = "" };
- db.dbuser.Add(user);
- db.SaveChanges();
- trac.Complete();//事物提交,如未执行该方法,出事务作用范围自动回滚
- }
- }
- catch (Exception ex)
- {
- throw;
- }
f:)、T-SQL查询
1) sql 查询,实体类
- //sql 查询,实体类
- var userList = db.Database.SqlQuery<User>("select id,UserName,Password from [User]").ToList();
2)指定对象查询实体
- var userList= db.dbuser.SqlQuery("select id,UserName,Password from [User]").ToList();
3) 执行SQL命令
- db.Database.ExecuteSqlCommand("update [User] set UserName='Michel' where UserName='jay'");
.Net EntityFramwork6.0 EF框架开发入门的更多相关文章
- LLBL Gen Pro 5.0 企业应用开发入门
Solutions Design 公司于2016年5月发布了LLBL Gen Pro 5.0,这个新版本的发布出乎于我的意料.我的猜想是从4.2升级到4.5,再升级5.x版本,主版本号的变更会给原有客 ...
- Vue实例:vue2.0+ElementUI框架开发pc项目
开发前准备 vue.js2.0中文,项目所使用的js框架 vue-router,vue.js配套路由 vuex,状态管理 Element,UI框架 1,根据官方指引,构建项目框架 安装vue npm ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门
一.所有需要的软件.插件等下载地址 J2SE的官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html Ecl ...
- Python云端系统开发入门——框架基础
Django框架基础 这是我学习北京理工大学嵩天老师的<Python云端系统开发入门>课程的笔记,在此我特别感谢老师的精彩讲解和对我的引导. 1.Django简介与安装 Django是一个 ...
- 跨平台移动框架iMAG开发入门
iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次能够同一时候兼容Android和iOS平台,有点儿Web开发基础就能非常快上手.当前移动端跨平台开发的框架有非常多,但用iMAG另一个优点,就是 ...
- .NET EF框架的安装、及三种开发模式
一.EF框架的安装: 要在VS(如Visual Studio 2012)中使用EF框架,就需要先进行安装. 我们需要给这个应用安装EntityFramework包,引入EF框架相关的内容,我们需要引入 ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(1)-5项目数据库操作封装操作-EF框架
EF框架有三种基本的方式:DB First(数据库优先),Model First(模型优先),Code First(代码优先). Entity Framework4.1之前EF支持“Database ...
- ThinkPHP5.0框架开发实现简单的页面跳转
ThinkPHP5.0框架开发实现简单的页面跳转 一.效果 登录界面 登录成功界面 登录失败界面 二.目录结构 三.代码 控制器中的Login.php <?php // 声明命名空间 names ...
随机推荐
- c# 图解泛型List<T>, HashTable和Dictionary<TKey,TValue>
前辈在代码中使用了HashTable,由于我用的比较少,不能理解,为什么不用Dictionary?看了源码以及查阅资料,总结如下: 首先看看它们的继承体系: 我把list<T>的继承体系也 ...
- Bond UVA - 11354(LCA应用题)
Once again, James Bond is on his way to saving the world. Bond's latest mission requires him to trav ...
- c++运行时函数
函数 包含 类别 功能 _atold math.h 数学子程序 把字符串转换成浮点数 _beginthread process.h 进程控制子程序 启动执行一个新线程 _bios_disk bios. ...
- 原生js获取left值和top值
在用js做动态效果时,通常需要获取元素绝对定位中的left和top属性值.比如做一个碰撞广告,就要不停的获取元素的top和left属性值. 需要注意的事:取值的元素必须要设置position:abso ...
- SparkHiveContext和直接Spark读取hdfs上文件然后再分析效果区别
最近用spark在集群上验证一个算法的问题,数据量大概是一天P级的,使用hiveContext查询之后再调用算法进行读取效果很慢,大概需要二十多个小时,一个查询将近半个小时,代码大概如下: try: ...
- linux下关闭网络命令
CTRL+ALT+F1 进入命令行模式 CTRL+ALT+F7 退出命令行模式 sudo ifconfig ethX dwon 关闭网卡sudo /etc/init.d/networking stop ...
- ABAP调试
ABAP 开发系列(02): ABAP Development Workbench 介绍(下)- ABAP 调试器 8. Debugger – ABAP 调试器 开发程序,调试器是必不可少的工具,而A ...
- 关于数据库的左,右,内,外连接,Union和Union all---------笔记
1.左连接 select a.filed1,a.filed2,b.filed1 from a (左表) left join b(右表) on a.commonfiled = b.commonfiled ...
- vuex的学习笔记
什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性. ...
- Java异常处理认识
什么是异常? 就是在编程过程中或者程序运行过程中出现的一些意外. 什么是异常处理? 就是提前编写程序处理可能发生的意外. 具体的过程是怎样的? 知己知彼方能百战百胜.Java中的异常是用对象来表示的, ...