千家信息网

Linq to SQL的DataContext怎么写

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"Linq to SQL的DataContext怎么写"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,
千家信息网最后更新 2026年10月31日Linq to SQL的DataContext怎么写

本篇内容介绍了"Linq to SQL的DataContext怎么写"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

强类型DataContext

在Linq to SQL的***篇的时候就说道DataContext是一个入口点,我们使用Linq to SQL做的一些操作几乎都是施加在这个类上的。在使用VS的设计器生成的代码里,我们会看到一个从DataContext继承的局部类,大家都习惯的将这个类称之为强类型的DataContext,她对DataContext做了进一步的封装。

今天我们先就对DataContext一些没有介绍过的地方详细讨论一下。

首先我们先手写一个强类型DataContext:

  1. [Database(Name="CnBlogs")]

  2. public class CnBlogsDataContext : DataContext

  3. {

  4. public CnBlogsDataContext(string fileOrConnectionString)

  5. : base(fileOrConnectionString)

  6. { }

  7. public CnBlogsDataContext(string fileOrConnectionString,
    MappingSource mapping)

  8. : base(fileOrConnectionString, mapping)

  9. { }

  10. public CnBlogsDataContext(IDbConnection conn)

  11. : base(conn)

  12. { }

  13. public CnBlogsDataContext(IDbConnection conn, MappingSource mapping)

  14. : base(conn, mapping)

  15. { }

  16. public Table<Post> Posts

  17. {

  18. get { return this.GetTable<Post>(); }

  19. }

  20. public Table<Blog> Blogs

  21. {

  22. get { return this.GetTable<Blog>(); }

  23. }

  24. public Table<User> Users

  25. {

  26. get { return this.GetTable<User>(); }

  27. }

  28. [Function(Name = "dbo.GetPostsByBlogId")]

  29. public ISingleResult<Post> GetPostsByBlogId(

  30. [Parameter(Name="blogid",DbType="int")]

  31. int blogid)

  32. {

  33. IExecuteResult result = this.ExecuteMethodCall(this,
    ((MethodInfo)(MethodInfo.GetCurrentMethod())), blogid);

  34. return (ISingleResult<Post>)result.ReturnValue;

  35. }

  36. [Function(Name = "dbo.GetBblogsOrPosts")]

  37. [ResultType(typeof(Blog))]

  38. [ResultType(typeof(Post))]

  39. public IMultipleResults GetBlogsOrPosts(

  40. [Parameter(Name = "kind", DbType = "int")]

  41. int kind)

  42. {

  43. IExecuteResult result = this.ExecuteMethodCall(this,
    ((MethodInfo)MethodInfo.GetCurrentMethod()), kind);

  44. return (IMultipleResults)result.ReturnValue;

  45. }

  46. [Function(Name = "dbo.GetBblogsAndPosts")]

  47. [ResultType(typeof(Blog))]

  48. [ResultType(typeof(Post))]

  49. public IMultipleResults GetBlogsOrPosts()

  50. {

  51. IExecuteResult result = this.ExecuteMethodCall(this,
    ((MethodInfo)MethodInfo.GetCurrentMethod()));

  52. return (IMultipleResults)result.ReturnValue;

  53. }

  54. }

在这个类里出现了四个前面没有看到的特性:Database,Function,Parameter,ResultType至于Database就不用说了,就是做数据库映射的。

Linq to SQL不仅仅能做字段与属性之间的映射,还可以将存储过程或用户自定义方法与.net里的方法之间做映射,功能是不是很强大?这个映射就是通过Function和Parameter共同完成的。

Function有两个属性IsComposable和Name,Name就是用来指定数据库中存储过程或者用户自定义方法的名字,当IsComposable为true的时候,则表明该方法对应着一个用户自定义方法,否则对应一个存储过程,默认是false。Function特性只能放在方法上面。

Parameter就是用来映射存储过程或方法接受的参数。

"Linq to SQL的DataContext怎么写"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

方法 过程 就是 存储 用户 类型 之间 内容 属性 数据 数据库 时候 更多 特性 知识 实用 强大 学有所成 接下来 不用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 与互联网科技公司 互联网金融 金融科技 奇酷互联网络科技公司 广西互联网科技公司 互联网科技美容 新华互联网科技校企合作 滨湖区互联网智能科技产品供应 互联网科技公司需要的职位 厦门比较好的科技互联网公司 链环科技传统企业怎么转型互联网 电子科技大学互联网创业大赛 互联网新科技动漫ppt素材 南京一网一红互联网科技有限公司 云鲸互联网络科技有限公司 中国互联网公司的科技投入 陕西彩京云互联网科技有限公司 华人运通互联网科技公司 重庆科技产业互联网有哪些 优雇互联网科技有限公司 咖啡 小马过河互联网科技 上海电发互联网科技有限公司 互联网和高科技公司 互联网实体化科技化 互联网大会黑科技排名 移动互联网年度科技创新 中国科技创新与世界互联网大会 特约风豹互联网科技为什么扣费 科技互联网企业在行动
0