存储过程——在LINQ中使用(六)
上述几篇都将了存储与数据库,关联的一些实例,首先感谢各位大神们在前几篇文章中提到的问题,本人还在学习中,这次介绍下在linq中如何应用存储过程;
- LINQ简介
- 语言集成查询(LINQ)在对象领域和数据领域架起了一座桥梁
- LINQ提供了一种跨领域各种数据和数据格式是数据的一致模型
- 微软的ORM解决方案
- LINQ项目引用解决方案,面向.NET
- VSIDE对LINQ的强大支持
- LINQ原理
- LINQ to SQL 会将对象模型中的语言集成查询转为SQL,然后将他们发送到数据库中进行执行
- 当数据库返回结果时,LINQ to SQL 会将它们转换回你可以用自己编程语言处理的对象
- IDE工具提供LINQ(O/R设计器)
上述所提到的都是一些理论方面的知识,下面先介绍了VS 中如何建立LINQ to SQL(即O/R关系),我们在解决方案中添加LINQ to SQL 类:

查看生成的后台代码
public partial class ProductDataContext : System.Data.Linq.DataContext
{ private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource(); #region 可扩展性方法定义
partial void OnCreated();
#endregion public ProductDataContext(string connection) :
base(connection, mappingSource)
{
OnCreated();
} public ProductDataContext(System.Data.IDbConnection connection) :
base(connection, mappingSource)
{
OnCreated();
} public ProductDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
} public ProductDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
base(connection, mappingSource)
{
OnCreated();
}
}
再回到IDE中
- 连接数据库,如下

- 将存储过程直接拖到,上图中所描绘的红色区域
生成后台代码如下
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.productTypeAdd")]
public int productTypeAdd([global::System.Data.Linq.Mapping.ParameterAttribute(Name="Name", DbType="NVarChar(50)")] string name)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), name);
return ((int)(result.ReturnValue));
}
在程序中应用如下
后台代码调用LINQ to SQL 如下
ProductDataContext pdc = new ProductDataContext();
private void ProuType_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = pdc.QueryproductType();
} private void btnAdd_Click(object sender, EventArgs e)
{
pdc.productTypeAdd(txtProduType.Text);//添加产品类型
dataGridView1.DataSource = pdc.QueryproductType();//查询所有产品类型
}
总结:
- LINQ to SQL的方法实际上解决了大部分的数据转换对象关系问题
- 存储过程在O/R中生成的对象中,其实就类里面的一个方法,传递参数和存储过程一致
疑问:
- LINQ 和 ADO.NET 都能解决与数据交互问题,那具体什么时候引用呢?各有什么优势
- O/R貌似需通过VS工具操作,有没有更好的方法去封装他
- 存储过程在O/R中转换程函数,如果出现异常如何去维护,是更改O/R生成的类还是直接更改存储过程
上述问题,希望大神们指点,小弟初次接触存储过程,有不足指出望直接指出。。。
存储过程——在LINQ中使用(六)的更多相关文章
- C#编程(六十一)------------LINQ中的扩展方法
原文链接: http://blog.csdn.net/shanyongxu/article/details/47208401 LINQ中的扩展方法 LINQ中where扩展方法,要想使用,必须导入us ...
- Linq中关键字的作用及用法
Linq中关键字的作用及用法 1.All:确定序列中的所有元素是否都满足条件.如果源序列中的每个元素都通过指定谓词中的测试,或者序列为空,则为 true:否则为 false. Demo: 此示例使用 ...
- Linq中使用Left Join
use Test Create table Student( ID ,) primary key, ) not null ) Create Table Book( ID ,) primary key, ...
- 转载Linq中GroupBy方法的使用总结
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...
- Linq中GroupBy方法的使用总结(转)
Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class St ...
- Linq中GroupBy方法的使用总结(转载)
from:https://www.cnblogs.com/zhouzangood/articles/4565466.html Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均 ...
- Entity Framework 6 Recipes 2nd Edition(11-9)译 -> 在LINQ中使用规范函数
11-9. 在LINQ中使用规范函数 问题 想在一个LINQ查询中使用规范函数 解决方案 假设我们已经有一个影片租赁(MovieRental )实体,它保存某个影片什么时候租出及还回来,以及滞纳金等, ...
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- 关于Linq中的Lambda表达式中OrderBy的深入理解
起因:就是一段Linq语句,OrderBy里面的i是什么? IQueryable<Student> slist = (from s in EFDB.Student select s). O ...
随机推荐
- UI设计之PS界面初始化设置
一.PS界面初始化 1.新建设置 web设计的基础标准:宽度为1920px,高度自定义,分辨率72px,背景模式RGB 8位.(提示:可以“存为预设”以便以后直接调用) 注意:背景内容为透明!!! ...
- Exchange之准备AD及域
1. 若有旧版本的Exchange 2003,则需要执行以下命令: setup.com /PrepareLegacyExchangePermissions 2. 准备架 ...
- [转] 正则表达式 oracle
地址:http://www.cnblogs.com/Azhu/archive/2012/04/03/2431127.html 从oracle database 10gsql 开发指南中copy的. 正 ...
- .Net 接连 Oracle 数据库(Winform)
之前一直是使用Asp.Net 连接 Oracle 10g,最近想写个小程序,所以选择了 Winform.折腾半天后,才发现 Winform 与 Asp.Net 连接 Oracle 是有些许区别的. 区 ...
- UI1_UIScrollView
// // AppDelegate.m // UI1_UIScrollView // // Created by zhangxueming on 15/7/10. // Copyright (c) 2 ...
- 生成HTMLTestRunner测试报告的操作步骤——Python+selenium自动化
HTMLTestRunner是Python标准库的unittest模块的一个扩展,具体操作如下 1.安装 环境:Window8 步骤:1)http://tungwaiyip.info/software ...
- 简单版解决IE兼容性问题
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 在访问页面时, 如 ...
- 更新win7资源管理器
更新exeplorer.exe: 1.方法1: void RefreshExplorer() { ]; SHELLEXECUTEINFOA shellExeInfo={}; shellExeInfo. ...
- 30个HTML5学习资源
早在几个星期前,Adobe就发布了Dreamweaver CS5 HTML5 Pack的预览版下载.众所周知,HTML5在互联网领域掀起了一场大论战,并让Adobe的日子很难熬.HTML5致力于为前端 ...
- .Net Core下如何管理配置文件(转载)
原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core ...