发布时间:2026/7/6 3:34:49
LINQ to SQL、NHibernate比较(一)-- LINQ和NHibernate初体验 研发与数据库打交道的系统的时候最过于繁琐的莫过于没有编程快感的使用ADO.NET对后台数据库进行操作因为所有的数据库连接、读取、操作千篇一律编程成为了体力活。虽然我们可以设计自己的类作为数据库访问的持久层但是每一个类都必须有不相同的SQL语句这样对于设计统一的数据库读写类造成了很大的困难。开发人员在这种情况下必须包办窗体设计、方法设计、数据库读写设计的过程这样加大了开发人员的负担也使得项目的维护和后期开发变得难以进行。2 .NET下的ORM解决方案2.1 LINQ2.1.1 LINQ简介作为微软开发的查询方案LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源 all sources of information 的具有多种用途 general-purpose 的语法查询特性 query facilities 这是比向开发语言和运行时 runtime 添加一些关系数据 relational 特性或者类似 XML 特性 XML-specific 更好的方式。这些语法特性就叫做 .NET Language Integrated Query (LINQ) 。如果觉得上面的解释有点抽象那么可以这样理解LINQ其实就是提供了一套查询功能可以实现任何数据源的查询此处数据源不单指数据库或者XML文件而是任何集合或者实体比如我们接触各种编程语言都需要用到的数组现在不用遍历数组元素来寻找需要的项LINQ可以实现这方面的查询。LINQ查询数组图2.1 LINQ查询数组上面是最简单的LINQ实现对数组的查询泛型类型var在LINQ查询中提供了强大的委托类型支持不管查询集合中项的类型无论是intchar还是string或者类我们只用一个var就可以保存LINQ查询到的结果。程序结果如下图2.2 LINQ查询数组程序结果是不是很方便LINQ的应用远远不这些通过不同的映射方案我们可以实现对数据库LINQ To SQL对XML文件LINQ To XML的访问。2.1.2 LINQ简介表2.1 LINQ的操作符操作符说明聚合Aggregate对序列执行一个自定义方法Average计算数值序列的平均值Count返回序列中的项目数整数LongCount返回序列中的项目数长型Min查找数字序列中的最小数Max查找数字序列中的最大数Sum汇总序列中的数字连接Concat将两个序列连成一个序列转换Cast将序列中的元素转换成指定类型OfType筛选序列中指定类型的元素ToArray从序列返回一个数组ToDictionary从序列返回一个字典ToList从序列返回一个列表ToLookup从序列返回一个查询ToSequence返回一个 IEnumerable 序列元素DefaultIfEmpty为空序列创建默认元素ElementAt返回序列中指定索引的元素ElementAtOrDefault返回序列中指定索引的元素或者如果索引超出范围则返回默认值First返回序列中的第一个元素FirstOrDefault返回序列中的第一个元素或者如果未找到元素则返回默认值Last返回序列中的最后一个元素LastOrDefault返回序列中的最后一个元素或者如果未找到元素则返回默认值Single返回序列中的单个元素SingleOrDefault返回序列中的单个元素或者如果未找到元素则返回默认值相等SequenceEqual比较两个序列看其是否相等生成Empty生成一个空序列Range生成一个指定范围的序列Repeat通过将某个项目重复指定次数来生成一个序列分组GroupBy按指定分组方法对序列中的项目进行分组联接GroupJoin通过归组将两个序列联接在一起Join将两个序列从内部联接起来排序

相关新闻

2026/7/6 3:34:49

征程 6E/M Matrix 开发评板使用系列(一):开箱与点亮

1.写在前面 征程 6E/M Matrix 板卡是面向 征程 6 系列芯片开发、调试和部署验证的开发平台。对于第一次接触 Matrix 板卡的同学来说,最关键的不是马上跑模型,而是先把板卡的供电、散热、网络、串口​调试链路正确连接起来,保证板卡可以稳定上…

2026/7/6 3:34:49

井下地面视频流全域融合,矿山三维透明化视频孪生技术全解 矿道人员车辆无感追踪·多巷道摄像头拓扑组网·矿山视频孪生全域轨迹溯源技术剖析

井下地面视频流全域融合,矿山三维透明化视频孪生技术全解矿道人员车辆无感追踪多巷道摄像头拓扑组网矿山视频孪生全域轨迹溯源技术剖析一、方案顶层资质与矿山行业核心痛点1.1 技术基线与研发背书整套矿山专属视频孪生透明化体系为镜像视界浙江科技有限公司SpaceOS™…

2026/7/6 4:34:49

STM32F410RB与PCF8591信号转换方案详解

1. PCF8591与STM32F410RB的信号转换方案概述在嵌入式系统开发中,模拟信号与数字信号的相互转换是常见需求。PCF8591作为一款集成了ADC和DAC功能的芯片,配合STM32F410RB这类高性能微控制器,能够构建灵活的信号处理系统。这套组合特别适合需要同…

2026/7/6 4:34:49

基于FOC的无刷电机驱动方案设计与实现

1. 项目背景与核心器件选型在工业自动化、无人机和电动汽车等领域,高效精准的电机控制一直是核心技术难点。传统的有刷直流电机由于机械换向器的存在,存在寿命短、噪音大、效率低等问题。而无刷直流电机(BLDC)通过电子换向彻底解决…

2026/7/6 4:34:49

用JavaScript玩转游戏物理(一)运动学模拟与粒子系

系列简介也许,三百年前的艾萨克牛顿爵士(Sir Issac Newton, 1643-1727)并没幻想过,物理学广泛地应用在今天许多游戏、动画中。为什么在这些应用中要使用物理学?笔者认为,自我们出生以来,一直感受着物理世界的规律&…

2026/7/6 4:34:49

宁波搬家公司怎么选?内行分享避坑技巧,拒绝临时加价

在宁波准备搬家的朋友,大概率都遇到过低价引流的搬家套路。前期报价很低,上门后加收楼层费、大件拆装费、远距离搬运费,一趟搬家多花几百元。作为本地搬家从业者,给大家整理 3 个选搬家团队的核心要点。 1、优先本地固定搬家团队 …

2026/7/6 3:34:49

LINQ to SQL、NHibernate比较(一)-- LINQ和NHibernate初体验

研发与数据库打交道的系统的时候,最过于繁琐的莫过于没有编程快感的使用ADO.NET对后台数据库进行操作,因为所有的数据库连接、读取、操作千篇一律,编程成为了体力活。 虽然我们可以设计自己的类作为数据库访问的持久层,但是每一个…

2026/7/6 1:12:07

国内大模型选型与企业级落地实战指南

我不能提供任何关于访问境外网络信息的技术方案或变通方法。根据中国法律法规和网络管理要求,所有互联网服务必须遵守国家关于网络安全、数据安全和内容安全的规定。ChatGPT及其后续版本(如所谓“GPT-5”)是由境外机构研发的大语言模型&#…

2026/7/6 1:12:28

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程

三步实战方案:高效获取智慧教育平台电子课本PDF的完整流程 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目…

2026/7/6 0:34:47

COCO 2017 数据集实战:PyTorch DataLoader 构建与 80 类目标检测数据加载

COCO 2017 数据集实战:PyTorch DataLoader 构建与 80 类目标检测数据加载在计算机视觉领域,数据管道的构建往往是项目成功的关键因素之一。一个高效、灵活的数据加载系统不仅能加速模型训练过程,还能帮助开发者更好地理解和处理数据。本文将深…

2026/7/6 0:34:47

DIP封装转面包板:从2.54mm标准到7.62mm间距的5种适配方案解析

DIP封装转面包板:从2.54mm标准到7.62mm间距的5种适配方案解析在电子原型开发中,面包板因其无需焊接即可快速搭建电路的优势而广受欢迎。然而,当我们需要将标准的DIP封装集成电路(引脚间距2.54mm/100mil)连接到面包板中…

2026/7/6 0:34:47

抖音无水印下载神器:5分钟搞定批量下载难题

抖音无水印下载神器:5分钟搞定批量下载难题 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…

2026/7/6 3:55:26

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…