LinqToSql增加、修改、删除---(转载)
改为学习ADO.NET 实体框架了:),概念上的东西网上都很多,当我想实现一个简单的外键表操作时,却没有一个较好的例子,
经过一段摸索后,将最简单的情形给贴出来。
本文用这2种方式通过一个简单的外键关系来演示Insert,Update,Delete操作
DB中建立2张表,这里只考虑1对多的关系:
LinqToSql的方式:
生成的TestDB.dbml:
Insert:
using(TestDBDataContext db=new TestDBDataContext())
{
Depatment depatment = new Depatment() {DeptName = "开发部"};
Employee employee = new Employee()
{
EmpName = "Ringgo.Yao",
Depatment = depatment
};
db.Depatment.InsertOnSubmit(depatment);
db.SubmitChanges();
}
当提交Department时,会自动提交Employee
Update:
using (TestDBDataContext db = new TestDBDataContext())
{
Depatment depatment = db.Depatment.Where(i => i.DeptId ==2).First();
depatment.DeptName = "研发部";
Employee employee = new Employee()
{
EmpName = "Ringgo.Yao",
Depatment = depatment
};
db.SubmitChanges();
}
这里修改Department记录的同时添加了一条Employee记录
Delete:
using (TestDBDataContext db = new TestDBDataContext())
{
Depatment depatment=db.Depatment.Where(i => i.DeptId == 3).First();
var employees=db.Employee.Where(i => i.DeptId == 3).ToList();
db.Employee.DeleteAllOnSubmit(employees);
db.Depatment.DeleteOnSubmit(depatment);
db.SubmitChanges();
}
删除的时候要先删除Employee,再删除Department
ADO.NET Entity Framework的方式:
生成的TestDB.edmx:
因为代码看起来似乎区别不大,所以就不进行说明了
Insert:
using(TestDBEntities db=new TestDBEntities())
{
Depatment depatment = new Depatment() {DeptName = "开发部"};
Employee employee = new Employee() {EmpName = "Ringgo.Yao"};
depatment.Employee.Add(employee);
db.Depatment.AddObject(depatment);
db.SaveChanges();
}
Update:
using (TestDBEntities db = new TestDBEntities())
{
var dept = db.Depatment.Where(i => i.DeptId == 1).First();
dept.DeptName = "研发部";
Employee employee = new Employee() {EmpName = "White"};
dept.Employee.Add(employee);
db.SaveChanges();
}
Delete:
using (TestDBEntities db = new TestDBEntities())
{
var dept = db.Depatment.Where(i => i.DeptId == 1).First();
foreach (var emp in dept.Employee.ToList())
{
dept.Employee.Remove(emp);
db.Employee.DeleteObject(emp);
}
db.Depatment.DeleteObject(dept);
db.SaveChanges();
}
LinqToSql增加、修改、删除---(转载)的更多相关文章
- Oracle 增加修改删除字段
Oracle 增加修改删除字段 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],…. ...
- Oracle 增加修改删除字段与添加注释
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 修改字段的语法:alter ...
- hibernate 批量增加 修改 删除
4.2 Hibernate的批量处理 Hibernate完全以面向对象的方式来操作数据库,当程序里以面向对象的方式操作持久化对象时,将被自动转换为对数据库的操作.例如调用Session的delete ...
- Oracle-表的字段增加修改删除操作
表结构修改 ALTER TABLE SCOTT.TEST RENAME TO TEST1--修改表名 ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME ...
- js jquery select 操作 获取值,选中选项,增加,修改,删除
select示例: <select id="sel"> <option value="1">one</option> < ...
- Oracle 增加 修改 删除 列
语法结构如下: alter table tablename add (column datatype [default value][null/not null],….); alter table t ...
- openlayers中实现点的拖拽(modify),在layer中增加修改删除point。
最近忙着整地图,都忘记了总结来沉淀自己,自我检讨一下. 总结一下最近使用openlayer时学习的内容,先说下我的业务逻辑吧,在室内地图中 1,点击新增在地图上新增一个可以拖拽的点,拖拽完成后确定位置 ...
- ado.net c#基本的增加,修改,删除,查询
自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...
- Mysql中用SQL增加、删除、修改(包括字段长度/注释/字段名)总结
转: Mysql中用SQL增加.删除.修改(包括字段长度/注释/字段名)总结 2018年09月05日 10:14:37 桥Dopey 阅读数:1830 版权声明:本文为博主原创文章,未经博主允许不 ...
- iOS --SQL的增加、删除、查找、修改
iOS对于数据库的操作:增加.删除.查找.修改 首先需要创建一个数据库:本程序的数据库是在火狐浏览器里的插件里写的微量型数据库 火狐找查找SQLite Manager的步骤: 第一步:在工具栏找到附加 ...
随机推荐
- python作业day3修改配置文件
思维还有点乱,撸代码到深夜,先上代码吧.(我是跟着武sir的思路的) 流程图: 代码(有注释): #!/usr/bin/env python # -*- coding:utf-8 -*- import ...
- Core Data入门-备用
简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中的数据还原成OC对象. ...
- [Codeforces Round #247 (Div. 2)] A. Black Square
A. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- 开心菜鸟系列----函数作用域(javascript入门篇)
1 <!DOCTYPE html> 2 <html> 3 <script src="./jquery-1.7.2.js"></ ...
- Effective Java提升Code Coverage代码涵盖率 - 就是爱Java
虽然我们已经有了测试程序,但是如何得知是否已完整测试了主程序?,透过Code Coverage代码涵盖率,我们可以快速地得知,目前系统中,有多少程序中被测试过,不考虑成本跟投资效益比,涵盖率越高,代表 ...
- 10个经典的Android开源项目(附源码包)
最近在抽空学习Android系统开发,对Android学习也比较感兴趣,刚开始学就试着在网上找几个项目源码研究看下,以下就将找到的Android项目源码列出,希望对正在或准备学习Android系统开发 ...
- C51工具是怎么进行覆盖分析的
C51工具针对8051微控制器的有限存储器资源进行了优化设计. 为了最有效地利用存储器,根据一个很容易解释的方法,自动变量和函数参数在存储器中均进行覆盖处理. 首先,连接器根据源程序生成调用树.例如: ...
- makefile例子《一》
一.例子 (1)makefile和src源文件不在同一目录下 (2)把.o生成到指定目录下 文件结构目录 ----inc //放头文件 ----lib //放所需要的.a或者.so文件 -- ...
- paip.输入法编程---智能动态上屏码儿长调整--.txt
paip.输入法编程---智能动态上屏码儿长调整--.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csd ...
- java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade
2012-10-4 19:50:37 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for se ...