當 Visual Studio 2005遇上LINQ To SQL

零基础学习Visual Studio C# 2005编程指南 C#(发音为“看”)是一种由微软开发的面向对象的编程语言,它是由Anders Hejlsberg领导的一个团队设计出来的,最初是为了开发.NET平台。自从2002年首次推出以来,C#已经走过了多个版本,每个版本都引入了新的特性和改进,比如泛型、LINQ、async/await等,使其成为构建各种应用程序的强大工具。开发者可以使用继承的方式来创建自定义控件。通过继承现有的控件类并重写其方法或属性,可以创建出具有特定功能的控件。// 获取图形对象// 绘制一个椭圆作为按钮的背景。 阅读详情

當 Visual Studio 2005遇上LINQ To SQL

 

文/黃忠成

 

  前陣子,我發表了VS2005遇上LINQ一文,其實有件事我未告訴各位,不過我想許多人都已經猜到了吧?

  我們既然能在VS 2005中呼叫.NET Framework 3.5的LINQ函式,那這也意味著,原來的VS 2005專案,能參考VS 2008所編譯出來的Assembly。

  那這有何好處呢?很簡單,你不需要大費周章的在VS 2005中以土法煉鋼來呼叫LINQ函式,只要用Visual Studio 2008 Express版本(這是免費的,當然,你也可以用Visual Studio 2008 Team Suite/Team Developer等版本做到相同的事),將需要的函式寫成Assembly(類別庫),就能在Visual Studio 2005中呼叫該函式,最終得到LINQ的強大火力支援,同時!也保留了LINQ Expression。

  就我猜想,會需要用到這種手法的情況有兩種,一種是只有Visual Studio 2005正式版,而沒有Visual Studio 2008付費版本,而又需要LINQ的功能。另一種是擁有舊有Visual Studio 2005專案,為了穩定性或是遷移之不可測性,不希望將整個專案移植到Visual Studio 2008中。

  前面的VS 2005遇上LINQ一文中,已經詳述了如何於VS 2005中使用LINQ,以本文所提及的手法,你不需撰寫那些奇怪的函式呼叫,只要下載Visual Studio 2008 Express版本,就可以在類別庫中使用LINQ,然後在VS 2005專案中參考她們。所以,此處我就不再贅述一般LINQ的用法了,我將焦點放在LINQ To SQL上面。

  首先,請使用Visual Studio 2008 Express來建立一個類別庫,然後加入LINQ To SQL類別項目,詳情可參考前一篇文章。

  接著,於LINQ To SQL設計區中加入Customers資料表,然後新增一個類別檔案,名為NorthwindExt.cs,程式碼如下所示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace DALLib

{

    partial class NorthwindDataContext

    {

        public List<Customers> GetCustomers()

        {

            return (from s1 in Customers select s1).ToList();

        }

 

        public List<Customers> GetCustomers(int startRowIndex, int maximumRows)

        {

            return (from s1 in Customers

               select s1).Skip(startRowIndex).Take(maximumRows).ToList();

        }

 

        public void UpdateCustomer(Customers old_data, Customers data)

        {

            Customers.Attach(data, old_data);

            SubmitChanges();

        }

 

        public void DeleteCustomer(Customers data)

        {

            Customers.Attach(data);

            Customers.DeleteOnSubmit(data);

            SubmitChanges();

        }

 

        public int GetRecordCount(int startRowIndex, int maximumRows)

        {

            return (from s1 in Customers select s1).Count();

        }

    }

}

這是利用了partial class機制,於原來的LINQ To SQL產生類別中,添加了ObjectDataSource控件會用到的Select、Update及Delete函式,完成後編譯此類別庫。

接著以Visual Studio 2005建立一新網站,加入前述之類別庫所編譯出來之DLL為參考,於Default.aspx中放入一ObjectDataSource控件,設定其資料來源為DALLib.NorthwindDataContext。

設定SELECT Method。

設定UPDATE Method。

設定DELETE Method

最後設定ObjectDataSource之SelectCountMethod為GetRecordCount,OldValueParameterFormatString為old_{0},ConflectDetecting為CompareAllValues,EnablePaging為True。

然後拖入一個GridView控件,繫結至此ObjectDataSource,啟用編輯 、分頁、刪除等功能,執行後便可見到以下結果。

你可以編輯資料,切頁與刪除資料。

那這究竟有何好處呢?如果你仔細看NorthwindExt.cs中的程式碼,會發現到,我使用了Skip與Take函式,而這是SQL Server 2005最有效率的ROW_NUMBER分頁機制,你不須像以前般自行處理分頁,LINQ To SQL已幫你做掉所有的事了,新增、修改、刪除亦是如此。

當然,有一點我們也不能忘記,Visual Studio 2008 Express預設使用的是檔案型SQL Server資料庫,所以若要改用伺服器級別的資料庫,那麼你必須掛載事件至ObjectDataSource的ObjectCreating事件,改變其ConnectionString。

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)

{

        e.ObjectInstance = new DALLib.NorthwindDataContext(

           "Data Source=JEFFRAY;Initial Catalog=Northwind;Integrated Security=True");

}

 

 Welcome To LINQ To SQL World ^_^

 

 

VS2005和SQL Server 2005简体中文版的开发与数据库管理宝典 Team Foundation Server(TFS)作为微软提供的一套全面的团队基础项目管理工具,集成了版本控制、工作项跟踪、构建自动化以及项目管理功能。TFS的设计初衷是为软件开发团队提供一个协作的环境,让团队成员能够更加紧密地配合,提高工作效率,同时保证项目的按时交付。TFS的核心功能组件包括:版本控制:提供了集中式的源代码管理解决方案,支持文件级别的版本控制以及分支管理。工作项跟踪:允许团队跟踪任务、需求、缺陷等,有助于项目管理和进度监控。报告和仪表板。 阅读详情

相关推荐

Visual Studio版本互转工具:从2005到2010的项目迁移解决方案

在软件开发的漫长周期中,随着技术的不断进步,开发者时常需要在多个版本的Visual Studio之间进行项目迁移和转换。Visual Studio版本互转工具应运而生,旨在简化不同版本间的迁移流程,减少手动转换中的错误和工作量。版本互转工具基于一套预设的转换规则和算法来分析和修改项目文件,确保在转换过程中,代码的一致性和功能的完整性。它不仅涵盖了文件格式的转换,还包括了对新版本特性的支持和对旧代码的兼容性优化。这一章节为读者搭建了理解和使用Visual Studio版本互转工具的基础框架。

weixin_26854475的博客 1077

當VS2005 遇上 LINQ

 當VS2005 遇上 LINQ 文/黃忠成  在【極意之道-次世代 .NET Framework 3.5 資料庫開發聖典】(好長的書名,我該取個匿稱嗎?哈)一書第三章中,有下面這段敘述: 任何支援.NET Framework 2.0的程式語言都能夠叫用LINQ所提供的查詢函式,也就是

黄忠成 1万+

SSE消息推送避坑指南:从Chrome兼容性到Spring超时配置

本文深入探讨了在Java Spring Boot项目中实现SSE消息推送时,从浏览器兼容性到后端配置的完整避坑指南。针对Chrome并发连接限制、Safari自动断开、Nginx代理缓冲以及Spring SseEmitter内存泄漏与超时管理等生产环境常见问题,提供了具体的解决方案和最佳实践配置,帮助开发者构建稳定可靠的实时推送系统。

work3的博客 449

VS(visual studio)里没有LINQ to SQL模板

在VS中找到工具---获取工具和功能---单个组件---(添加即可)

可上青天揽明月,可下五洋去捉鳖. 1万+

【可信数据空间-部署方案】

此部署架构体现了以下几个核心原则:去中心化: 数据存储和处理完全分布在各个参与者端,运营方只提供核心的协调和信任基础设施。安全边界清晰: 通过VPC、DMZ、防火墙、K8s命名空间等技术,在每个层级都建立了严格的安全边界。高可用与弹性: 所有关键服务均以集群方式部署,避免单点故障,并能根据负载动态伸缩。云原生: 全面采用容器化和Kubernetes编排,简化部署、管理和运维复杂度。合规性: 架构设计天然满足数据驻留要求(数据留在企业本地),并为所有操作提供不可篡改的审计追踪能力。

u014716614的博客 771

寻迹Arduino智能小车

Arduino巡线寻迹智能小车

Rachael_Wang的博客 9978

Using LINQ in Visual Studio 2005

Using LINQ in Visual Studio 2005 NOTE:(安装linq时要求安装的是vs的英文版否则将无法识别,还有就是得安装vs2005 sp1,其实个人觉得倒不如直接安装vs2008算了。 LINQ (.Net Language Inte...

didan3807的博客 147

Trae编程工具Cline插件深度集成与Claude 3.7 API Key高级配置实战

本文详细介绍了如何在Trae编程工具中深度集成Cline插件并配置Claude 3.7 API Key的高级技巧。通过实战案例,展示了如何提升代码补全质量、实现多轮对话记忆及自定义代理设置,特别适合全栈工程师和需要私有化AI服务的团队。文章还涵盖了安装流程、API Key获取方式及企业级部署的最佳实践。

weixin_28829903的博客 436

Visual Studio 2008 Express 中的 LINQ To SQL

Visual Studio 2008 Express 中的 LINQ To SQL 文/黃忠成  這幾日剛好有空,心血來潮的下載了Visual Studio 2008 C# Express版本,發現此版本居然也支援了LINQ To SQL,雖然有限制只能使用SQL Server資料庫檔案作為資料來源,不能直接於IDE中連結SQL Server伺服器,不過這並不是問題,我們只要從欲連

黄忠成 2138

【华为OD机试真题】2、在字符串中找出连续最长的数字串含+-号 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >请在一个字符串中找出连续最长的数字串,并返回这个数字串。 如果存在长度相同的连续数字串,返回最后一个。 如果没有符合条件的字符串,返回空字符串””。   注意: 数字串可以由数字”0-9″、小数点”.”、正负号”±”组成,长度包括组成数字串的所有符号。 “.”、“±”仅能出现一次,”.”的两边必须是数字,”±”仅能出现在开头且其后必须要有数字。 长度不定,可能含有空格

KJ.JK 6271

IgH EtherCAT 从入门到精通:第 2 章 环境搭建与编译安装

环境搭建与编译安装指南 本章详细介绍了搭建IgH EtherCAT Master开发环境的完整流程。内容包括: 硬件要求:支持多种Intel和Realtek网卡的原生驱动,以及通用网卡的generic驱动选项 软件依赖:列出Linux系统下所需的工具链和开发包 源码获取:通过Git克隆官方仓库并切换稳定版本的方法 配置选项:详细解析bootstrap脚本和configure的核心参数,包括路径设置、功能开关和实时框架选项 编译流程:从生成构建系统到最终编译安装的完整步骤 通过本章指导,读者可以完成一个可运行

从事嵌入式linux android驱动开发,拥有全栈能力 476

Visual Studio 2008中的LINQ

今天在翻《日经软件》,里面附有一张赠送的“Visual Studio 2008 Team System 2008 Beta2”的安装盘,不禁感慨,Visual Studio 2003还没有玩熟,Visual Studio 2005都还没有怎么摸过,Visual Studio 2008都已经快出来了。网上找了找Visual Studio 2008相关的内容,毕竟还没有上市,不是特别多

fatfox的专栏 781

YOLOv12涨点改进 | Neck特征融合改进篇 | YOLOv12引 入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率,目标检测、图像分割、图像分类,助力高效涨点

本文提出了一种基于BiFPN特征融合模块优化的YOLOv12目标检测方法。BiFPN通过引入可学习的权重实现高效的多尺度特征融合,结合双向连接机制提升特征提取能力。实验表明,该方法在COCO数据集上实现了优异的检测性能。文章详细介绍了BiFPN模块的原理、核心代码实现,以及如何将其集成到YOLOv12框架中,包括模块添加、配置文件修改等具体步骤。这种改进方案具有参数少、计算量小等优势,为高效目标检测提供了一种新的技术路径。

Ai缝合怪、助力小伙伴高效发论文 391

vs2010 mysql linq to sql 系列,无法添加LINQ to SQL类在VS2010项目

I just ran into something in Visual Studio 2010 RC that wasn't previously happening (like, yesterday). No software changes here, but I did run into some muck yesterday when compiling that required a ...

weixin_39641738的博客 175

157、飞控中的鲁棒自适应控制

本文总结了飞控系统中鲁棒自适应控制的实践经验。作者通过炸机案例引出传统PID控制的局限性,分析了鲁棒性与自适应性的本质矛盾,提出"用鲁棒性兜底,用自适应性提性能"的设计原则。重点介绍了模型参考自适应控制(MRAC)的实现方法,包括参考模型设计、自适应律调参技巧(建议初始增益设为0.01)、直接/间接自适应的应用场景差异,以及防止参数漂移的鲁棒修正方法。文章还分享了实际调试中的三大关键问题(初始值设定、激励条件、执行器饱和)及解决方案,并推荐了"鲁棒PID+自适应前馈"的混合架构。最后强调调试顺序应为先保证鲁

2401_88858637的博客 27

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何:在 Visual Studio 中创建 LINQ to Entities 项目

不同类型的语言集成查询 (LINQ) 项目需要某些导入的命名空间 (Visual Basic) 或 using 指令 (C#) 和引用。最低要求是对 System.Core.dll 和 System.Data.Entity.dll 的引用,以及用于 System.Linq 和 System.Data.Objects 命名空间的 using 指令。LINQ to Entities 还需要对...

diansi8126的专栏 296

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Visual Studio 2005和Visual Studio 2008的区别

今天在机器上安装了visual studio2008,因为之前开发一直使用2005所以没有舍得把它卸载,安装之后证实这两个版本应该是可以共存的。不过也发现了一些问题,感觉现在机器上有些混乱了,visual 2005+.net framework 2.0 visual 2008 +.net framework 3.5有个大升级。 查了下资料,visual2005和2008

小璐子又回来了。。。 5992

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Visual Studio中的XQuery支持

    今天Simon转发了一封咨询VS2005中各个版本对XQuery支持情况的邮件。由于从2002年到去年底一直在用,所以直接凭直觉认定各个版本都支持,事实证明冲动是魔鬼经验是巫师,以后还是考证清楚再回复,以免误导他人。他的问题是:1. vs2005哪种版本支持XQuery,哪些版本不支持XQuery。2. 在c# 项目中using System.Xml.Query;using Sys

技术无涯-Ray Zhang 655

Visual Studio 2008移动开发初体验(一)

Visual Studio 2008移动开发初体验(一)趁着黄金周的空闲,学习一下新的技术,好让自己的思维能跟上软件更新的脚步,这大概就是程序员所面对的现实吧。在这个黄金周里,我准备研究一下Visual Studio 2008中的移动开发部分。Visual Studio 2008目前还处在Beta 2的阶段,当年VS 2005的Beta 2,已经和日后我们看到的RTM版本相差无几了,但愿VS

aawolf = new Mobile.MVP 2万+

VS2005与VSOrcasExpress对LINQ各有所属~

 各有所属的属表示项目属性。今天终于决定实战一下LINQ。可惜在VS2005里面(已经安装了.NET Framework3.5),LINQ的语法总是带着隆重的波浪线,真的很是不爽,不用说当然是编译失败了。上MSDN看了半天,总说要安装LINQ,但是我在那页面找了半死都没发现所谓的可安装的LINQ,只有一个指向CTP版本的Orcas。很是郁闷,看到7、8张的CD就恼火,现在的软件怎么

volnet的专栏 300

LINQ to SQL 系列 如何使用LINQ to SQL插入、修改、删除数据

第一篇 从CUD开始,如何使用LINQ to SQL插入、修改、删除数据 准备工作,现在数据库中建好测试表Student,这个表只有三个字段ID,Name,Hometown,其中ID为int类型的自增长字段,Name和Howmtown是nvarchar类型 1. 打开VS2010新建控制台应用程序,然后添加LINQ to SQL Class,命名为DbApp.dbml,新建db...

weixin_30501857的博客 120
上一篇: 技術人,你該警悌的事
下一篇: LINQ 首部曲 : LINQ To Object Part 1 - Using VB.NET 2008
Code6421
博客等级 码龄20年 259粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值