回到目录

当你打开扩展名为dbml的LINQ-to-SQL的文件后,你将会看到很多用partial修饰符来修饰的方法,类等,它们是用来做什么的呢?起初到win form时代也这个东西,partial译为“部分”,就是说它只是某个东西的一部分,你可以在其它地方再去扩展它,起初微软就认为对于一个类来说,可能不是一个人做涉及,它可能是几个人同时去干预它,所以,它提出的“分部类 partial class”的概念,它之后被非常好的应用到了LINQ-to-SQL中。

对于一个由生成器为我们生成的模型来说,LINQ-to-SQL一定不知道我们以后要做什么,它只能把最标准的代码为我们生成,可能是一个表对象,一些表属性,固定的行为,事件等等,但与业务相关的东西它无法生成,这时,它将类,方法做成了partial,如图:

这使我们可以在DBML模型外部去扩展这个User_Info类,它里面也有partial method,事实上,partial method只能被实现一次,必须返回值必须是void,一般地,在DBML模型中只是规定了固定的method签名,而真到的实现你可以自己在扩展的class中去实现。

像下面三个partial method是公用的,对于每个实现它们都是统一的,其中OnCreated是指当类型被new时,去执行本方法,有时,我们确实需要这样去做

对于微软自己生成的LINQ-to-SQL(DBML)文件,我们通过查看它的源代码,确实使我们耳目一新,另一方面也感觉到了C#语言的魅力,而我们当初抛弃JAVA(不思进取的语言)是正确的选择,呵呵!

回到目录

转载于:https://www.cnblogs.com/lori/archive/2012/08/15/2640966.html

LINQ-to-SQL那点事~耳目一新的partial class 和 partial method相关推荐

  1. LINQ To SQL 语法及实例大全

    LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...

  2. 转载:LINQ to SQL更新数据库操作

    翻译整理ScottGu的关于LINQ to SQL的Part 4: Updating our Database .该Post讲解了如何使用LINQ to SQL更新数据库,以及如何整合业务逻辑和自定义 ...

  3. LINQ to SQL语句(1)之Where(抄的好)

    Where操作适用场景:实现过滤,查询等功能.说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句.Where操作包括3种形式,分别为简单形式.关 ...

  4. Linq to Sql : 三种事务处理方式

    Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from  MSDN: 事务 (LINQ to SQL)).MSDN中描述得相对比较粗狂,下面就结合实例来对此进行 ...

  5. 将不确定变为确定~Linq to SQL不能随机排序吗?

    回到目录 一般来说,在T-SQL时代,随机排序可以进行newid()产生出guid值来实现,代码一般为: SELECT TOP 10 * FROM User ORDER BY NEWID(); 而到了 ...

  6. C# LINQ TO SQL

    LINQ to SQL语句(1)之Where   Where操作   适用场景:实现过滤,查询等功能.   说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它 ...

  7. Linq to Sql 语句全集

    LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...

  8. 如何查看Linq to SQL运行时,实际执行的Sql语句

    调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助. 以下是我用到的方法: StringBuilder s ...

  9. Linq to SQL 资源

    Scott Guthrie 的 Linq to SQL 系列: 1)介绍 http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to ...

  10. .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理

    步步为营VS 2008 + .NET 3.5(12) - DLINQ(LINQ to SQL)之事务处理和并发处理 作者:webabcd 介绍 以Northwind为示例数据库,DLINQ(LINQ ...

最新文章

  1. 开源性能监控工具APM之Skywalking和Pinpoint的实测对比
  2. 从一个前端项目实践 Git flow 的流程与参考
  3. python-常见数据类型及其方法
  4. UA MATH575B 数值分析下II 牛顿算法
  5. OpenCV2学习笔记(十四):基于OpenCV卡通图片处理
  6. OS- -请求分页系统、请求分段系统和请求段页式系统(一)
  7. HALCON 20.11:深度学习笔记(4)--- 网络和训练过程
  8. 用GA算法设计22个地点之间最短旅程-R语言实现
  9. 整合Mybatis+Spring | 释疑
  10. msmms (二) sms与mms 简述!
  11. 【数据库系统概念】数据库基本概念
  12. 纳米机器人驱动技术提速十万倍
  13. 腾达ap设置说明_腾达(Tenda)路由器如何设置AP模式
  14. tp php websocket教程,tp6 websocket方法详解
  15. Quartus 软内核NIOS II 入门指导
  16. 区块链交易——举例说明
  17. Ubuntu: Host Controller not enabled 报错
  18. 【精】EOS智能合约:system系统合约源码分析
  19. 扩展程序 - Google Chrome
  20. 视频教程-系统集成项目管理工程师5天修炼-软考

热门文章

  1. arduino点阵声音频谱_【紫歌のarduino笔记】基于FFT的音乐频谱显示器
  2. 中文论文万能句型_干货|SCI论文写作的万能句型~
  3. linux读写文件测试,Linux下各种主要文件系统的读写性能测试
  4. js 高级 prototype
  5. SQLAlchemy Tutorial
  6. javascript class static
  7. numeric.js
  8. d3 v5 api shape.line
  9. echarts box
  10. Bokeh库快速入门