EF添加和修改

(1)//添加操作
public bool addDate()
{
try
{
//声明上下文
a_context = new AEntities();
//声明数据模型实体
//执行代码时候会先验证这些属性值是否符合约束,不然验证过不去就不会往下执行了
b1 = new Table_1();
b1.age = 20;
b1.name = "大沙漠";
//用上下文进行操作(上下文可以理解为就是数据库,就是对数据库进行操作)
//通过上下文指定数据表Table_1进行操作
//传入实例,Add是添加操作的一个封装操作
//和a_context.Entry<Table_1>(b1).State = EntityState.Added;是一样的
a_context.Table_1.Add(b1);
//告诉上下文,把表的变化保存到数据库
a_context.SaveChanges();
return true;
}
catch (Exception)
{
return false;
}
}

(2)//更新操作
public bool update()
{
try
{
a_context = new AEntities();
b1 = new Table_1();
//修改时候属性值要写全,不然会报错
//属性值要符合表的约束规范,不能为空的就不能为空,最大值为10就不能超过10
b1.name = "小山";
b1.age = 10;
//修改表实体,唯一标识符(一般是ID)要表面,底层对应sql语句的where条件,这是必须的
//记住修改和删除时候【必须添加】唯一标识符主键(id),这是把它理解为sql语句操作就对了
b1.id = 1;
//操作数据库的一个入口,指定泛型操作对象实例,State是状态的意思,指定Entry操作状态
//添加状态Added,修改Modified,删除Deleted,未改变的Unchanged.,分离(上下文和表分离,不再跟踪表实体变化,起到释放控制的作用,基本不用)Detached
//Entry<Table_1>这个泛型可以省略
a_context.Entry<Table_1>(b1).State = EntityState.Modified;

//可以一次进行多次更,删除,改操作。
b1 = new Table_1();
b1.name = "小李";
b1.age = 14;
b1.id = 2;
a_context.Entry<Table_1>(b1).State = EntityState.Modified;

b1 = new Table_1();
b1.name = "小河流";
b1.age = 15;
b1.id = 3;
a_context.Entry<Table_1>(b1).State = EntityState.Modified;

//变化更新到数据中,就是执行sql语句
//这里的保存变化是针对整个表进行操,不是某个sql语句执行,不管你对表进行多少才操作,这里只管把这个表更新到数据库中
//虽然不对,但可以这样理解他是把我们操作后的表整个替换掉数据库中的表的感觉,只是一种理解,真正的是变化是执行了相应的sql语句
a_context.SaveChanges();

return true;
}
catch (Exception)
{
return false;
}
}

(3)//只针对某单列或多列更新
public bool updateOne()
{
try
{
a_context =new AEntities();
b1 = new Table_1();
b1.name = "小明";
b1.id = 1;

//Attach表示附加的意思,要进行单列操作,首先要把指定附加在上下文,别管这是什么逻辑,这是要求,不写就不行,估计默认是Detached状态吧
a_context.Table_1.Attach(b1);
//还是指定表实例a_context.Entry<Table_1>(b1)
//Property是属性的意思,泛型指定属性类型(这里是字符串)
// => 是lambda表达式,是匿名函数简化的写法,=>前面的是参数,后面的是函数体。
//xx就是自己命名的匿名函数
//IsModified表示从数据库加载一个值,进行修改后再把修改保存回数据库,就是更改的意思。这是告诉上下文,我只对指定的这个属性进行修改而已
//这是一种强类型写法,属性类型是不会写错的,是通过点.出来,是编译后的结果
a_context.Entry<Table_1>(b1).Property<string>(xx => xx.name).IsModified = true;
//如果要修改多个列,则再加一个属性指定就行了

//还有另外一种方法,直观点,可以看出是对name这个属性进行修改,但是这是一种弱类型写法,如果name写错了呢?
//a_context.Entry<Table_1>(b1).Property("name").IsModified = true;

a_context.SaveChanges();

return true;
}
catch (Exception)
{
return false;
}
}

时间: 2024-10-29 00:38:37

EF添加和修改的相关文章

EF里查看/修改实体的当前值、原始值和数据库值

EF里查看/修改实体的当前值.原始值和数据库值以及重写SaveChanges方法记录实体状态 - 心态要好 时间 2013-09-10 09:09:00 博客园_汪杰的cnBlogs 原文  http://www.cnblogs.com/oppoic/p/ef_dbpropertyvalues_toobject_clone_setvalues_changetracker_entries.html 本文目录 查看实体当前.原始和数据库值:DbEntityEntry 查看实体的某个属性值:GetVa

MVC客户管理(添加、修改、查询、分页)

ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.修改.查询.分页) 目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NET MVC搭建项目后台UI框架—4.tab多页签支持 ASP.NET MVC搭建项目后台UI框架—5.Demo演示Controller和View的交互 ASP.NET MVC搭建项目后台UI框架—6.客户管理(添加.

Jquery EasyUI的添加,修改,删除,查询等基本操作介绍

http://www.jb51.net/article/42016.htm 初识Jquery EasyUI看了一些博主用其开发出来的项目,页面很炫,感觉功能挺强大,效果也挺不错,最近一直想系统学习一套前台控件,于是在网上找了一些参考示例.写了一些基本的增删改查功能,算是对该控件的基本入门.后续有时间继续深入学习. 在学习jquery easyui前应该先到官网下载最新版本http://www.jeasyui.com/download/index.php 先看一下运行后的页面 1.列表展示 2.新

JTree 添加 , 删除, 修改

package com.swing.demo; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.CellEdi

Mac添加或修改环境变量

方式1. 终端添加或修改 命令:pico, vim等 方式:pico .bash_profile 方式2. 文本方式添加或修改 1)打开 touch ~/.bash_profile open -t ~/.bash_profile 2)添加或修改 如: export ANDROID_SDK_ROOT=***/adt-bundle-mac-x86_64-20140702/sdk export ANDROID_NDK_ROOT=***/android-ndk-r10c export NDK_ROOT=

datagrid 添加、修改、删除(转载)

原链接:JQueryEasyUI学习笔记(十)datagrid 添加.修改.删除 基于datagrid框架的删除.添加与修改: 主要是批量删除,双击表单修改.选中行修改,增加行修改,再有就是扩展editor的方法,无需废话,直接上代码,代码中的注释写的很详细: <script type="text/javascript" charst="utf-8">var editFlag = undefined;//设置一个编辑标记 //因为layout框架指向hr

vs2008 添加与修改模板.

添加 我的模板: 路径:  C:\Users\Administrator\Documents\Visual Studio 2008\Templates\ItemTemplates\Visual C# 以上这个文件是从自带的模板文件复制过来修改的. 无需重启VS. 就可以生效 效果如下: 修改 自带的模板. 路径: C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Web\2052   (看你

IIS环境下如何批量添加、修改、删除绑定的域名

IIS环境下如何批量添加和修改所绑定域名 1.关闭IISADMIN服务和W3SVC服务,可以从服务里面关闭,也可以直接执行命令:net stop iisadmin /y: 2.打开“C:\WINDOWS\SYSTEM32\INETSVR”,找到Metabase.xml,这就是存放iis信息的地方了,包括IIS的配置及网站配置都在这个文件中,备份一下,防止出错: 3.找到要修改的站点,根据原来的形式添加域名绑定,保存Metabase.xml: 4.重启IIS,可直接使用IISRESET来实现: 5

JQueryEasyUI学习之datagrid 添加、修改、删除

JQueryEasyUI学习之datagrid 添加.修改.删除 实现EasyUI中DataGrid单个表格的编辑