ASP.NET网站开发——LINQ TO SQL类

news/2024/5/19 9:47:01/文章来源:https://blog.csdn.net/zzllyy119977/article/details/79806974

        LINQ TO SQL是LINQ中最重要的一个组件,为NET.  Framework3.5所支持,它可以为关系数据库提供一个对象模型,并在该对象模型基础上实现对数据的查询丶添加丶修改丶删除等功能,即LINQ TO SQL提供了用于将关系数据作为对象管理的运行时基础结构。

        LINQ TO SQL最重要的一个功能就是为数据库创建一个对象模型(由基于.NET框架的类组成),并将该对象模型映射到数据库中对应的对象

LINQ TO  SQL对象模型的基本元素

SQL  Server数据库中的对象

实体类

属性或字段

关联

外键关系    

方法

存储过程的函数

        使用SQL Server数据库Stumarks介绍LINQ TO SQL对象模型和SQL Server数据库中的对象的映射关系。如下图:

                                                    

一丶数据上下文    

DataContext 概论    
        DataContext又称数据上下文,它为LINQ TO SQL 提供操作数据库的入口。使用LINQ TO SQL 操作数据库,首先需要为该数据库创建一个继承自DataContext类的自定义的数据上下文类。
        DataContext类能够通过数据库连接或连接字符串来映射数据库中的所有实体的源,并跟踪和标识用户对数据库的更改。用户可以调用其SubmitChanges()方法。 
DataContext 类的属性

    1. 连接属性Connection

        Connection属性可以获取DataContext类的实例的连接。值得注意的是,用户获取该属性的值之后,该连接对象的默认状态是关闭的。因此,用户如果使用该连接对象,则需要显式打开该连接对象的状态。

    2. 事物属性Transaction

         Transaction属性为DataContext类的实例设置访问数据库的事务。其中,LINQ TO SQL支持以下三种事务。

                    (1)显式事务。(2)隐式事务。(3)显式可分发事务。

    3. 执行命令的最大时间属性CommandTimeout

        CommandTimeout属性可以设置或获取DataContext类的实例的查询数据库操作的超时期限。该时间的单位为秒,默认值为30秒。有时,查询数据库操作可能需要很长的时间。此时,则需要增大该属性的值,以保证查询数据库的操作能够完成。

DataContext 类的方法

    1. 执行SQL命令的ExecuteCommand()方法

        ExecuteCommand()方法能够执行指定的SQL语句,并通过该SQL语句来操作数据库。ExecuteCommand()方法返回一个整数值,即该SQL语句影响记录的数量。

        先创建实例,创建被执行的SQL语句,调用方法显示语句,显示方法执行的结果

protected void btnCommand_Click(object sender, EventArgs e){LinqDBDataContext DB = new LinqDBDataContext();string strSql = "update userinfo set username={0} where id=7";int result = DB.ExecuteCommand(strSql, "花无缺");Response.Write(result + "条数据受影响");}
运行结果为:1条数据受影响

    2. 执行SQL查询的ExecuteCommand()方法

        ExecuteCommand()可以执行指定的SQL查询语句,并通过SQL查询语句检索数据,查询结果保存数据类型为IEnumerable或IEnumerable<TResult>的对象。

 protected void btnQuery_Click(object sender, EventArgs e){LinqDBDataContext DB = new LinqDBDataContext();string strSql = "select top 5 * from userinfo";var users = DB.ExecuteQuery<UserInfo>(strSql);foreach (var user in users){Response.Write("用户昵称:" + user.Username + "<br />");}}

    3. 提交更改到数据库的SubmitChanges()方法

        SubmitChang()方法能够计算要插入丶更新或删除的已修改对象的集,并执行相应的修改提交到数据库,并修改数据库。

    4. 获取表集合的GetTable()方法

        GetTable()方法能够获取DataContext类的实例的表的集合

    5. 获取已修改对象的GetChangeSet()方法

        GetChangeSet()方法能够获取被修改的对象,它返回由三个只读集合组成的对象。它的返回值的类型为ChangeSet。

                    Deletes属性,已从ChangeSet中删除的实体。

                    Insert属性,已插入到ChangeSet中的实体。

                    Updates属性,已在ChangeSet中更新的实体。

二丶处理Table<T>类型的结果

    使用Table<T>能够方便地操作数据库中的数据,如插入数据到数据库丶修改数据库中的数据丶删除数据库中的数据。下图为Table<T>主要操作数据库的方法

方法名称说明
DeleteAllOnSubmit(TSubEntity)将集合中所有实体置于pending  delete状态
DeleteOnSubmit将此表中的实体置为pending  delete状态
InsertAllOnSubmit(TSubEntity)将集合中所有处于pending  delete状态的实体添加到DataContext
InsertOnSubmit将处于pending  delete状态的实体添加到此Table(TEntity)

    

三丶处理EntitySet<T>类型的结果

    EntitySet<T>用来描述实体类中包含的其他实体的集合。

        Add()方法能够将元素或实体添加到EntitySet<T>集合中。

        Remove()方法能够从EntitySet<T>集合中移除指定的元素或实体。如果成功移除返回true;否则返回false。

        RemoveAt()方法能够从EntitySet<T>集合中移除指定位置处的元素或实体。

        Contains()方法能够判断在EntitySet<T>集合中是否包含指定的元素或实体。如果EntitySet<T>集合包含指定的元素或实体,则返回true;否则返回false。

                

四丶处理EntityReTf<T>类型的结果

    EntityReTf<T>类用来处理一对多关系中的数据。

            

五丶处理ISingleResult<T>类型的结果

    ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果。

            


                                                                         微笑如有不足,请批评指正,谢谢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_895560.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React + Vite 实现一个音乐网站(项目搭建篇)

最近找工作屡屡碰壁&#xff0c;突然不想努力了… 最初想搭建一个个人博客&#xff0c;技术栈确定为React TS Vite&#xff0c;一方面是为了学习新知识&#xff0c;一方面是实在闲着。但是由于之前做过个人博客所有觉得个人博客可能没啥意思。主要是设计也是一大麻烦&#x…

React + Vite 实现一个音乐网站(menu篇)

众所周知&#xff0c;每个网站都有菜单… 1.建立component文件夹 内部创建menu文件夹&#xff0c;文件夹内创建index.jsx和index.scss 目录结构如下 2.代码的编写 1.解决思路&#xff1a;首先我们肯定是要搭建页面的&#xff0c;我将meun分为两部分一步份为logo&#xff0…

React + Vite 实现一个音乐网站(动画篇)

为了让网站能够炫酷一点&#xff0c;必然的动画是不可或缺的 现在实现一个类似canvas流动背景的功能&#xff0c;最初设计是遍历多个小球在页面上&#xff0c;然后小球在dom节点内移动变换。后决定加入小球一起变换&#xff0c;让小球跟随大球移动&#xff0c;同时小球也能有自…

React + Vite 实现一个音乐网站(aplayer音乐播放器 )

众所周知&#xff0c;音乐网站需要能播放音乐 1.页面搭建 我们需要搭建这样一个部分 那么秉承一分为二的原则&#xff0c;左边音乐列表&#xff0c;右边显示cd图片。理所应当我们得让cd运动起来。 components里面建立文件夹Music&#xff0c;文件夹内新建index.jsx和index.scs…

快速把网站变成纯灰度显示

直接上代码了&#xff0c;在Header中添加这句话&#xff1a; <style>html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale1);-webkit-filter: grayscale(100%);}</style> 上面的应该是对应IE的&#xff0c;Mac版Chrome&#xff0c;没有进行实测…

看李俊超老师SEO视频教程 全程笔记

SEO教程详解 一次偶然的机会发现了百度文库新推出的公开课栏目&#xff0c;并在其中发现了的李俊超老师的SEO视频教程&#xff0c;从中学到了很多知识。并在观看的过程中做了如下笔记&#xff1a; 核心思想及工作流程 1&#xff0e;内容为王&#xff0c;外链为帝&#xff0…

网站在微信中提示从浏览器打开

做微信营销活动或者APK下载推广时候&#xff0c;域名被经常被封&#xff0c;做到微信中正常使用呢&#xff1f;这就要借助一些工具来实现有效的操作。 由于微信的限制&#xff0c;通常会出现下面几种情况 1、应用文件在内置浏览器中下载全部被屏蔽掉&#xff0c;造成很多人用…

插件效果【网站开发必备】——12款响应式 Lightbox(灯箱)效果插件

文章结束给大家来个程序员笑话&#xff1a;[M] 灯箱效果&#xff08;Lightbox&#xff09;是网站中最用常的效果之一&#xff0c;用于现实相似模态对话框的效果。网络上各种 Lightbox 插件满目琳琅&#xff0c;随着应响式计划&#xff08;Respnsive Design&#xff09;的开展&a…

插件网站Formula.js – 实现 MS Excel 公式的 JavaScript 工具库

这两天一直在研究插件网站之类的问题,上午正好有机会和大家讨论一下. Formula.js 是一个实现 Microsoft Excel 和 Google Spreadsheets 等类似的电子表格应用程序拥有的强大公式的功能库&#xff0c;带给 Web 开辟人员最经常使用的日期/时光&#xff0c;文本&#xff0c;逻辑&a…

插件网站zoom.js:一款效果很独特的页面内容缩放插件

最近研究插件网站&#xff0c;稍微总结一下&#xff0c;以后继续补充&#xff1a; zoom.js 提供的 JavaScript API 让网站开发人员能够给页面内容添加缩放效果。在页面上点击&#xff0c;目标处的内容会放大&#xff0c;再次点击或者按 ESC 键即可恢复原始巨细。zoom.js 提供了…

linux服务器搭建网站

搭建网站环境用的是lnmp即&#xff1a;linuxnginxmsqlphp 1 命令行输入 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp 出现选择项&#xff0c;如图&#xff…

java web 网站头像上传处理 (springmvc +bootstrap+cropper)

制作头像上传。请根据您的实际需求&#xff0c;修改代码&#xff0c;不完全正确&#xff0c;仅供参考&#xff01; 前端页面设计使用bootstrap &#xff0c;头像预览和剪裁工具使用cropper 后台使用springmvc。 现在来看前端的页面设计 前端页面设计&#xff0c;自然需要boo…

大型网站架构演变和知识体系

大型网站架构演变和知识体系 之前也有一些介绍大型网站架构演变的文章&#xff0c;例如LiveJournal的、ebay的&#xff0c;都是非常值得参考的&#xff0c;不过感觉他们讲的更多的是每次演变的结果&#xff0c;而没有很详细的讲为什么需要做这样的演变&#xff0c;再加上近来感…

kali系统网站部署笔记

网站放在 其他位置----计算机------var-----www----html 首先启动nginx service nginx start 然后访问127.0.0.1 就会看到Apache正在工作 启动mysql数据库 service mysql start 接着用 mysql -u root -p 连接mysql 用户名&#xff1a;root 密码&#xff1a;123456 数据库操作命…

720vr全景网站平台系统 vr全景图制作系统

新版会员中心 模板展示 4D环物模型 2021-7.10 重磅更新&#xff1a; 支持mysql5.7 支持https 2021-8.10 更新支持邮箱注册会员 2021年升级4D功能 更新记录2020年12月修复720度环物4d功能&#xff0c;上传顺畅2021年1月修复720环物浏览放大等功能 720度环物演示http://cdn.7…

Android学习网站推荐

收集了一些主流的android学习网站&#xff0c;在这里分享给大家 1、http://www.android-study.com/ 2、http://www.eoeandroid.com/ 国内最大的Android开发社区&#xff0c;本人使用频率最高的&#xff0c;里面分享了很多源代码&#xff0c;对入门者学习很有帮助 3、http://w…

PhantomJS在Windows7下实现网站自动下载截图

1. phantomjs介绍 基于Javascript驱动的命令行webkit引擎&#xff0c;轻量级&#xff0c;安装简单&#xff0c;开发快速&#xff0c;渲染速度较快&#xff0c;无界面的webkit浏览器。 phontomjs跟一般浏览器一样可以加载网页&#xff0c;但不同的是它不会把网页显示出来&#x…

最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码

最新在线客服系统php代码微信软件公众号小程序app二维码聊天网站源码 管理界面 独家长期更新日志(欢迎反馈BUG) 1、添加手机端前后台声音提示 2、添加后台客户管理显示在线离线 3、添加清空当前对话列表功能 4、优化手机端图标为高清 5、 修复用户端截图发送客服后台收…

【喜讯】:个人网站开通啦!

为了更好的学习技术和分享经验&#xff0c;特开通Spring Show个人网站。欢迎大家提BUG哦~~~~ 一、欢迎提意见和建议 如果大家有好的建议和意见&#xff0c;请在个人博客首页左侧的在线服务中通过在线QQ或微博联系我&#xff0c;还可以在本博客下评论。 二、网站说明 本…

快速一站式搭建免费个人网站/博客 /Blog

Hi,我是小明。 个人网站/Blog, 作为一个名片以及装13工具, 不仅可以给自己简历锦上添花, 而且当你拥有一定的访问量的时候&#xff0c;就还可以投放些恰饭广告&#xff0c;何乐不为~ 今天&#xff0c;我就教大家如何 利用 AWS 搭建个人网站。 搭建过程分以下三步: 1.申请一…