linq to sql对存储过程和自定义sql的支持
这是一些关于linq to sql零散的知识点,如果你要系统的学习linq to sql的知识,请看ScottGu的博客
Part 1: Introduction to LINQ to SQL
Part 2: Defining our Data Model Classes
Part 3: Querying our Database
Part 4: Updating our Database
Part 5: Binding UI using the ASP:LinqDataSource Control
Part 6: Retrieving Data Using Stored Procedures
Part 7: Updating our Database using Stored Procedures
......
linq to sql默认的CURD行为是linq表达式,如获取数据
NorthwindDataContext northwind = new NorthwindDataContext();
var product = from p in northwind.Products
where p.CategoryID == 1
select p;
linq表达式会在运行时动态生成sql语句。
linq to sql也对存储过程和自定义sql提供支持
一、sp
拖一个已写好的存储过程到设计面板的右边,linq to sql自动为我们生成与存储过程有相同名字的一个方面,这样我们可通过NorthwindDataContext实例调用,调用存储过程转化成调用一个实例方法了,太简单了。
存储过程的返回值是一个自动生成的新的数据类型,命名规则是存储过程名+Result,当你拖动sp到设计器左边指定数据类型中,sp生成的方法的返回值就是这种类型的集合。返回结果集同样支持linq to sql的修改和删除操作。
对于插入更新删除对sp的支持是这样的
二、自定义sql
NorthwindDataContext内置的ExecuteQuery提供了对查询的自定义sql的支持,你可像上面一样写查询sql,也可以返回自定义的对象。
返回的结果集同样适用于linq to sql对对象的修改和删除操作
对于修改和删除的自定义sql,用ExecuteCommand来执行
不管是linq to sql表达式,还是sp,还是自定义sql,都对对象的更新,删除和规则验证有同样支持。