C#中.NET 7.0控制台应用使用LINQtoSQL、LINQtoXML

目录

一、新建控制台应用和数据库连接

二、手动添加System.Data.Linq程序包

三、手动添加System.Data.SqlClient程序包

四、再次操作DataClasses1.dbml

五、示例

1.源码

2.xml文件


        默认安装的.NET 7.0控制台应用是不支持使用LINQtoSQL、LINQtoXML的。 

        默认安装的.NET Framework控制台应用和窗体应用都支持LINQtoSQL、LINQtoXML类的。

       .NET Framework的Windows窗体应用、控制台应用,默认安装后或添加LINQtoSQL、LINQtoXML类后都能自动生成完整的支持文件,而.NET 7.0控制台应用和窗体应用,默认安装或添加应用后不能自动生成完整的支持文件。

        比照缺少的支持文件,手动添加,就有可能获得.NET 7.0控制台应用、窗体应用支持使用LINQtoSQL、LINQtoXML的解决方案。

        本文作者在上一片文章中发布了.NET 7.0窗体应用支持使用LINQtoSQL、LINQtoXML的解决方案。在本文中,作者将公布.NET 7.0控制台应用支持使用LINQtoSQL、LINQtoXML的解决方案。

一、新建控制台应用和数据库连接

         VS2022→新建C#控制台应用.NET 7.0→新建数据库连接db_CSharp→添加LINQtoSQL,如建立过该类,接受确认,双击DataClasses1.dbml,拖拽入数据表tb_Employee、tb_Salary,保存,资源管理器里会自动生成一些文件,但不全,打开DataClasses1.designer.cs,会发现一片红警(类似的截图在作者上一篇文章中有,读者也可以亲自测试)→,发现缺少很多支持文件:System.Data.Linq、System.Data.Linq.Mapping(现象:这些using是虚的)。

二、手动添加System.Data.Linq程序包

        这个文件让程序支持LINQ,仅仅有它不一定对全部的LINQ有用,但没有它一定不支持LINQ。

        通过NuGet下载安装netcore-system.data.linq.7.0.4。具体的操作已经发布在作者的上一篇文章中。

        安装这个程序包后,使得我的程序获得支持LINQtoXML类。

三、手动添加System.Data.SqlClient程序包

        通过NuGet下载安装 system.data.sqlclient.4.8.5。

        安装这个程序包后,使得我的程序获得支持LINQtoSQL类。

四、再次操作DataClasses1.dbml

        双击DataClasses1.dbml →删除窗体中曾经添加的数据表tb_Employee、tb_Salary,保存 →重新添加数据表tb_Employee、tb_Salary,保存。→ 再次打开DataClasses1.designer.cs,发现曾经的一片红警,消失了。

        至此,在.NET 7.0控制台应用里支持使用LINQtoSQL、LINQtoXML的开发环境搭建完成。

 

五、示例

         在上述的开发环境中,设计一段程序生成一个新的XML文件,这个XML的数据源自数据库db_CSharp的两个数据表:从数据表tb_Employee取前三个记录,每个记录选取ID和Name两个元素,从数据表tb_Salary前一个记录的元素Salary。

1.源码

// .NET7.0控制台应用支持LINQtoSQL和LINQtoXML
using System.Data;
using System.Xml.Linq;namespace _10_2
{class Program{    static void CreateXmlFromDatabase(){string path = Directory.GetCurrentDirectory() + @"\Createbydb.xml";string strCon = "Data Source=DESKTOP-3LV13FS;Integrated Security=True;Database=db_CSharp;";DataClasses1DataContext? _Linq;          //声明Linq连接对象并声明成为非null值_Linq = new DataClasses1DataContext(strCon);XElement root = new("db_CSharp", _Linq.tb_Employee.Select(c => new XElement("tb_Employee",new XElement("ID", c.ID),new XElement("Name", c.Name),new XElement("db_CSharp", _Linq.tb_Salary.Select(p => new XElement("tb_Salary",new XElement("Salary", p.Salary))).Take(1)))).Take(3));root.Save(path);}static void Main(string[] args){CreateXmlFromDatabase();}}
}

2.xml文件

<db_CSharp><tb_Employee><ID>YGBH0001</ID><Name>小王</Name><db_CSharp><tb_Salary><Salary>1500</Salary></tb_Salary><tb_Salary><Salary>3000</Salary></tb_Salary><tb_Salary><Salary>5000</Salary></tb_Salary></db_CSharp></tb_Employee><tb_Employee><ID>YGBH0002</ID><Name>小李</Name><db_CSharp><tb_Salary><Salary>1500</Salary></tb_Salary><tb_Salary><Salary>3000</Salary></tb_Salary><tb_Salary><Salary>5000</Salary></tb_Salary></db_CSharp></tb_Employee><tb_Employee><ID>YGBH0003</ID><Name>小刘留</Name><db_CSharp><tb_Salary><Salary>1500</Salary></tb_Salary><tb_Salary><Salary>3000</Salary></tb_Salary><tb_Salary><Salary>5000</Salary></tb_Salary></db_CSharp></tb_Employee>
</db_CSharp>

        读者看出什么问题来了吗?如何解决,欢迎提供方案。

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

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

相关文章

自动驾驶学习笔记(八)——路线规划

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 路线规划 路由元素 路径搜索 最优…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…

LangChain应用全解析

一、Langchain基础 1.Langchain简介 (1)替换模型 from langchain.prompts import ChatPromptTemplatechat ChatOpenAI(temperature0) 使用代理ip llm ChatOpenAI(model_name"gpt-3.5-turbo", max_tokens2048, temperature0.5,openai_api_keyapi_key,openai_ap…

论文阅读:PVT v2: Improved Baselines with Pyramid Vision Transformer

来源&#xff1a;PVTv1 和PVTv2 链接&#xff1a;https://arxiv.org/pdf/2102.12122.pdf 链接&#xff1a;https://arxiv.org/pdf/2106.13797.pdf PVTv2是在PVTv1基础上&#xff0c;所以先介绍PVTv1 Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction…

windows上运行yolov3代码详解(小白)

batch_normalize1 # 是否做BN 代码链接 环境配置 没有Anaconda的话可以安装下 首先创建虚拟环境&#xff0c;名称随意&#xff0c;版本3.9.我觉得挺好的 激活虚拟环境 conda activate 刚刚创建的环境名称 切换到requirements.txt目录下&#xff0c;直接vscode打开yolov3文件…

【操作系统面试题(32道)与面试Linux命令大全】

文章目录 操作系统面试题引论1.什么是操作系统&#xff1f;2.操作系统主要有哪些功能&#xff1f; 操作系统结构3.什么是内核&#xff1f;4.什么是用户态和内核态&#xff1f;5.用户态和内核态是如何切换的&#xff1f; 进程和线程6.并行和并发有什么区别&#xff1f;7.什么是进…

ThinkPHP图片处理之压缩图片大小,图片处理之图片水印(添加平铺文字水印,并设置文字之间的间距和文字的角度)

安装扩展 使用Composer安装图像处理类库 composer require topthink/think-image在对应的控制器内引入Image use think\Image;图片处理之压缩图片大小 public function upload(){$file request()->file(image);// 将前端传过来的图片移动到项目目录下$info $file->…

web前端开发第4次Dreamweave课堂练习/html练习代码《出版界推出一批纪念抗美援朝胜利70周年主题图书》

目标图片&#xff1a; 文字素材&#xff1a; 出版界推出一批纪念抗美援朝胜利70周年主题图书 2023-08-01来源&#xff1a;新华社 为纪念抗美援朝战争胜利70周年&#xff0c;出版界集中推出了“抗美援朝亲历记丛书”《新中国立国之战——抗美援朝战争的回顾与思考》《毛泽东与…

C 语言 goto 语句

C 语言 goto 语句 在本教程中&#xff0c;您将学习在C语言编程中创建goto语句。此外&#xff0c;您还将学习何时使用goto语句以及何时不使用它。 goto语句使我们可以将程序的控制权转移到指定的label 标签。 goto语句的语法 goto label; ... .. ... ... .. ... label: sta…

Leetcode—2471.逐层排序二叉树所需的最少操作数目【中等】(置换环解法!)

2023每日刷题&#xff08;二十七&#xff09; Leetcode—2471.逐层排序二叉树所需的最少操作数目 置换环解题思想 参考自网络 总交换次数 每一层最小交换次数之和 每一层元素个数 - 置换环数 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* …

docker通过nginx代理tomcat-域名重定向

通过昨天的调试&#xff0c;今天做这个域名就简单了&#xff0c; 正常我们访问网站一般都是通过域名比如&#xff0c;www.baidu.com对吧&#xff0c;有人也通过ip&#xff0c;那么这个怎么做呢&#xff1f;物理机windows可以通过域名访问虚拟机linux的nginx代理转向tomcat服务…

【LeetCode刷题-二分查找】--658.找到K个最接近的元素

658.找到K个最接近的元素 方法一&#xff1a;二分查找双指针 假设数组长度为n&#xff0c;数组arr已经按照升序排序&#xff0c;可以将数组arr分为两部分&#xff0c;前一部分所有元素[0,left]都小于x&#xff0c;后一部分[right,n-1]都大于等于x&#xff0c;left与right都可以…

Windows10 安装 Ubuntu(WSL2)

Windows10 安装 Ubuntu(WSL2)&#xff1a;因为 Ubuntu(WSL1) 不具备调试功能&#xff0c;所以尽可能安装 Ubuntu(WSL2)。 具体流程如下&#xff1a; 1. 什么是WSL Windows Subsystem for Linux&#xff08;简称WSL&#xff09;&#xff0c;Windows下的 Linux 子系统&#xff…

YOLO目标检测——猫狗目标检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;宠物识别、猫狗分类数据集说明&#xff1a;猫狗分类检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含有猫和狗图片标签说明&#xff1a;使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含voc(xm…

【Linux】初识进程地址空间

❤️前言 大家好&#xff01;这里是好久没有营业的大懒虫lion&#xff0c;今天要和大家聊的内容是我最近新学习的关于进程地址空间的相关知识。 正文 当我们使用C/C语言进行内存管理时&#xff0c;经常会接触到这样的一张图片&#xff1a; 它常常被我们称作程序地址空间&#…

druid连接池异常GetConnectionTimeoutException(原创)

问题描述 有天&#xff0c;测试同学突然反馈系统页面查询缓慢&#xff0c;影响使用&#xff0c;我查了日志报&#xff1a; druid 连接池异常 GetConnectionTimeoutException wait millis 9120, active 20, maxActive 20 creating 0 结论先行 经一系列排查&#xff0c;得出数…

面试10000次依然会问的【ThreadLocal】,你还不会?

ThreadLocal简介与基本概念 ThreadLocal&#xff0c;即线程局部变量&#xff0c;是Java语言中用于实现线程数据隔离的一个重要类。这种机制允许在多线程环境中&#xff0c;每个线程都有自己的变量副本&#xff0c;从而使得每个线程都可以独立地改变自己的副本&#xff0c;而不…

css实现div倾斜效果

效果如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head> <style> *{margin:0;padding: 0;} .box1{margin:30px 100px;width:100px;height:200px;background:blueviolet;} …

【信息安全原理】——传输层安全(学习笔记)

&#x1f4d6; 前言&#xff1a;为保证网络应用&#xff0c;特别是应用广泛的Web应用数据传输的安全性&#xff08;机密性、完整性和真实性&#xff09;&#xff0c;可以在多个网络层次上采取安全措施。本篇主要介绍传输层提供应用数据安全传输服务的协议&#xff0c;包括&…

使用 HTTP Client 轻松进行 API 测试

在开发过程中&#xff0c;我们经常需要测试 API 接口以确保其正常工作。JetBrains 的集成开发环境&#xff08;IDE&#xff09;如 CLion、IntelliJ IDEA、PyCharm 等&#xff0c;默认内置了 HTTP Client 插件&#xff0c;可以方便地进行API测试。本文将介绍如何使用HTTP Client…