`
zhouxin464585932
  • 浏览: 75573 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

LINQ to SQL语句之Insert/Update/Delete操作

阅读更多

Insert/Update/Delete操作

Insert

1.简单形式

说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库。

NorthwindDataContext db = new NorthwindDataContext();
var newCustomer = new Customer { CustomerID = "MCSFT",CompanyName = "Microsoft",ContactName = "John Doe",
                            ContactTitle = "Sales Manager",
                            Address = "1 Microsoft Way",City = "Redmond",Region = "WA",PostalCode = "98052",
                            Country = "USA",Phone = "(425) 555-1234",Fax = null };
db.Customers.InsertOnSubmit(newCustomer);
db.SubmitChanges();

2.一对多关系

说明:Category与Product是一对多的关系,提交Category(一端)的数据时,LINQ to SQL会自动将Product(多端)的数据一起提交。

var newCategory = new Category { CategoryName = "Widgets", Description = "Widgets are the customer-facing
                            analogues to sprockets and cogs." };
var newProduct = new Product { ProductName = "Blue Widget", UnitPrice = 34.56M, Category = newCategory };
db.Categories.InsertOnSubmit(newCategory);
db.SubmitChanges();

3.多对多关系

说明:在多对多关系中,我们需要依次提交。

var newEmployee = new Employee { FirstName = "Kira", LastName = "Smith" };
var newTerritory = new Territory { TerritoryID = "12345", TerritoryDescription = "Anytown",
                             Region = db.Regions.First() };
var newEmployeeTerritory = new EmployeeTerritory { Employee = newEmployee, Territory = newTerritory };
db.Employees.InsertOnSubmit(newEmployee);
db.Territories.InsertOnSubmit(newTerritory);
db.EmployeeTerritories.InsertOnSubmit(newEmployeeTerritory);
db.SubmitChanges();

4.Override using Dynamic CUD

说明:CUD就是Create、Update、Delete的缩写。下面的例子就是新建一个ID(主键)为32的Region,不考虑数据库中有没有ID为32的数据,如果有则替换原来的数据,没有则插入。(不知道这样说对不对。大家指点一下)

Region nwRegion = new Region() { RegionID = 32, RegionDescription = "Rainy" };
db.Regions.InsertOnSubmit(nwRegion);
db.SubmitChanges();

Update

说明:更新操作,先获取对象,进行修改操作之后,直接调用SubmitChanges()方法即可提交。注意,这里是在同一个DataContext中,对于不同的DataContex看下面的讲解。

1.简单形式

Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");
cust.ContactTitle = "Vice President";
db.SubmitChanges();

2.多个项

var q = from p in db.Products
       where p.CategoryID == 1
       select p;
foreach (var p in q)
{
   p.UnitPrice += 1.00M;
}
db.SubmitChanges();

Delete

1.简单形式

说明:调用DeleteOnSubmit方法即可。

OrderDetail orderDetail = db.OrderDetails.First(c => c.OrderID == 10255 && c.ProductID == 36);
db.OrderDetails.DeleteOnSubmit(orderDetail);
db.SubmitChanges();

2.一对多关系

说明:Order与OrderDetail是一对多关系,首先DeleteOnSubmit其OrderDetail(多端),其次DeleteOnSubmit其Order(一端)。因为一端是主键。

var orderDetails =
   from o in db.OrderDetails
   where o.Order.CustomerID == "WARTH" && o.Order.EmployeeID == 3
   
分享到:
评论

相关推荐

    LINQ体验——LINQ to SQL语句之Insert/Update/Delete操作

    我们继续讲解LINQ to SQL语句,这篇我们来讨论Insert/Update/Delete操作。这个在我们的程序中最为常用了。我们直接看例子

    LINQ to SQL手册

    LINQ to SQL语句(10)之Insert LINQ to SQL语句(11)之Update LINQ to SQL语句(12)之Delete和使用Attach LINQ to SQL语句(13)之开放式并发控制和事务 LINQ to SQL语句(14)之Null语义和DateTime LINQ to SQL语句(15)之...

    LINQ_to_SQL语法及实例大全

    LINQ to SQL语句(12)之Delete和使用Attach 42 删除(Delete)1.简单形式 42 2.一对多关系 42 3.推理删除(Inferred Delete) 43 使用Attach更新(Update with Attach) 43 LINQ to SQL语句(13)之开放式并发控制和事务 46 ...

    SiriusCoder 天狼星C#代码小妖精

    2 数据库操作采用的LINQ TO SQL 小规模的应当问题不大吧 实现了INSERT UPDATE EXIST GET方法 DELETE比较简单 自己写吧 写在LINQ里面 我觉得不划算 3 相比较动软代码生成器 生成代码除系统组件 System命名空间 外 不...

    ASP.NET 控件的使用

    9.4.2 执行Insert、Update和Delete命令 286 9.4.3 执行select命令 288 9.5 使用SqlDataSource控件缓存数据库数据 291 9.6 小结 293 第10章 使用List控件 294 10.1 List控件概述 294 10.1.1 声明列表项 294 10.1.2 ...

    SiriusCoder C#类库 代码生成器

    2、数据库操作采用的LINQ TO SQL,小规模的应当问题不大吧,实现了INSERT,UPDATE,EXIST,GET方法。DELETE比较简单,自己写吧,写在LINQ里面,我觉得不划算。 3、相比较动软代码生成器,生成代码除系统组件(System...

    ASP.NET.4揭秘

    9.4.2 执行insert、update和delete命令325 9.4.3 执行select命令327 9.5 使用sqldatasource控件缓存数据库数据330 9.6 小结332 第10章 使用列表控件333 10.1 列表控件概述333 10.1.1 声明列表项333 10.1.2 绑定到...

    轻松学C#(图解版)

    第三篇是应用技术篇,主要介绍的是异常处理、文件和流、委托、事件、Lambda表达式、命名空间、预处理器、程序集、运行时类型标识、反射、特性、泛型、LINQ和数据库开发等。 =======================================...

    asp.net面试题

    A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C.Select操作的Sql语句只能由ExecuteReader()方法来执行; D....

    ASP.NET3.5从入门到精通

    9.4.1 SQL DELETE 数据删除语句 9.4.2 使用Command 对象删除记录 9.4.3 使用DataSet 数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET 数据库操作实例 ...

    ASP.NET 3.5 开发大全11-15

    9.4.1 SQL DELETE数据删除语句 9.4.2 使用Command对象删除记录 9.4.3 使用DataSet数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET数据库操作实例 9.6.1 ...

    ASP.NET 3.5 开发大全

    9.4.1 SQL DELETE数据删除语句 9.4.2 使用Command对象删除记录 9.4.3 使用DataSet数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET数据库操作实例 9.6.1 ...

    ASP.NET 3.5 开发大全1-5

    9.4.1 SQL DELETE数据删除语句 9.4.2 使用Command对象删除记录 9.4.3 使用DataSet数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET数据库操作实例 9.6.1 ...

    ASP.NET 3.5 开发大全word课件

    9.4.1 SQL DELETE数据删除语句 9.4.2 使用Command对象删除记录 9.4.3 使用DataSet数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET数据库操作实例 9.6.1 ...

    ASPNET35开发大全第一章

    9.4.1 SQL DELETE数据删除语句 9.4.2 使用Command对象删除记录 9.4.3 使用DataSet数据集删除记录 9.5 使用存储过程 9.5.1 存储过程的优点 9.5.2 创建存储过程 9.5.3 调用存储过程 9.6 ASP.NET数据库操作实例 9.6.1 ...

    C#全能速查宝典

    1.4.41 ToInt32方法——转换为32位有符号整数 85 1.4.42 ToLongDateString 方法——转换为长日期字符串 86 1.4.43 ToLongTimeString 方法——转换为长时间字符串 87 1.4.44 ToLower方法——转换为小写 87 1.4.45 ...

    轻量级数据持久层组件Restful.Data.zip

    Restful.Data是一套通用的轻量级数据持久层组件,除封装了ADO.NET基本的数据库操作以外,也提供了一些orm相关的API,用户可以方便的定义实体类,并使用这些API对数据进行增删改查等操作。 Restful.Data借鉴了业界如...

Global site tag (gtag.js) - Google Analytics