linq

LINQ group by expression syntax

房东的猫 提交于 2020-08-21 03:52:43
问题 I've got a T-SQL query similar to this: SELECT r_id, r_name, count(*) FROM RoomBindings GROUP BY r_id, r_name I would like to do the same using LINQ. So far I got here: var rooms = from roomBinding in DALManager.Context.RoomBindings group roomBinding by roomBinding.R_ID into g select new { ID = g.Key }; How can I extract the count(*) and r_name part? 回答1: Try this: var rooms = from roomBinding in DALManager.Context.RoomBindings group roomBinding by new { Id = roomBinding.R_ID, Name =

Dapper ORM VS SqlSugar ORM的 8场对决

那年仲夏 提交于 2020-08-20 08:50:29
CUP和.NET SQL版本不同也会存在少许差距,但不会有质变,下面的测试结果仅供参考 比赛规则 1.统一使用Realse版本的最新 DLL,Realse模式启用程序 2.为了平衡CPU和数据库空闲情况,使用车轮战,每场比赛连续10回合比试 3.多次重启电脑取平均成绩上图 比赛成员 1.SqlSugar 3.1.01 2.Dapper 1.5.0.2 Dapper.Contrib 1.5 官方DLL 第一场 :查询所有 ,主要比拼数据转换实体的性能 每次查询100万条数据 SqlSugar 100 分 Dapper 95 分 比赛结果: SqlSugar小胜 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using Dapper; using Dapper.Contrib; using Dapper.Contrib.Extensions; using Models.PkDapper; using SqlSugar; using SyntacticSugar; namespace PkDapper.Demos { public class SelectBigData : IDemos { ///

FreeSql (三十四)CodeFirst 迁移说明

江枫思渺然 提交于 2020-08-20 08:10:32
FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也是缺点,优点是充分利用数据库特性辅助开发,缺点是切换数据库变得困难。不同程序员的理念可能不太一致,FreeSql尽量把功能支持到极致,至于是否使用是项目组技术衡量的另一个问题。 尽管多种数据库适配逻辑非常复杂,FreeSql始终秉承优化程序开发习惯的原则尽量去实现,中间碰到了一些非技术无法攻克的难题,比如数据库的自定义类型,和实体类本身就是一种冲突,为了减少使用成本,诸如此类的数据库功能没有得到支持。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10") .UseAutoSyncStructure(true) //自动同步实体结构【开发环境必备】 .Build(); //请务必定义成

C# .net Core 文件上传

痴心易碎 提交于 2020-08-20 06:34:56
.net core 和.net framework上传文件还是有一些区别的有很多注意的地方 .net framework 上传文件用httppostedfilebase .net core 上传文件用 IFormFile 下面废话不多说了,直接上代码 控制器里面写 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using CoreUpLoad.Models; using Microsoft.AspNetCore.Http; using System.IO; namespace CoreUpLoad.Controllers { public class HomeController : Controller { public IActionResult Index() { return View(); } [HttpPost] public IActionResult UpLoad(IFormFile file) { return View(); } }

FreeSql (三十四)CodeFirst 迁移说明

我只是一个虾纸丫 提交于 2020-08-20 02:08:14
FreeSql 支持 CodeFirst 迁移结构至数据库,这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性,而不只是支持基础的数据类型,这既是优点也是缺点,优点是充分利用数据库特性辅助开发,缺点是切换数据库变得困难。不同程序员的理念可能不太一致,FreeSql尽量把功能支持到极致,至于是否使用是项目组技术衡量的另一个问题。 尽管多种数据库适配逻辑非常复杂,FreeSql始终秉承优化程序开发习惯的原则尽量去实现,中间碰到了一些非技术无法攻克的难题,比如数据库的自定义类型,和实体类本身就是一种冲突,为了减少使用成本,诸如此类的数据库功能没有得到支持。 static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10") .UseAutoSyncStructure(true) //自动同步实体结构【开发环境必备】 .Build(); //请务必定义成

C#动态编译并执行代码

ⅰ亾dé卋堺 提交于 2020-08-20 01:08:15
先来张运行时截图: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.CSharp; using System.CodeDom.Compiler; using System.Reflection; namespace CSharpDynamicCode { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnRun_Click( object sender, EventArgs e) { run(); } void run() { CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider(); ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler(

.NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)

偶尔善良 提交于 2020-08-19 22:06:09
阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A、B、C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调用端,与服务不耦合 3.Dynamic、Dom动态构造服务端对象(Dynamic、DOM实现动态DOM) 1.背景介绍 现在越来越多的公司都在尝试SOA架构的实践,本人最近也在尝试学习这方面的技术,但是在实践过程中遇到一个问题,我想这个问题也是我们普遍实践者都应该会遇到的问题,问题描述如下: 我们有一个SOA商品(Item)查询接口,这个接口很通用,主要用来支撑日常很多其他系统的大量关于Item的查询,尤其是在高峰期间该服务的压力是很大的;我们站在SOA的角度看这个接口,这个通用的接口解决了众多的查询业务,确实不错,但是我们切换一下角度,站在每一个调用接口的访问端看似乎并不是很满意或者说牺牲了部分性能上的代价,因为我们无法干净利落的只获取当前这个业务点需要的数据项;这个Item 服务接口所返回的数据项必须同时满足所有调用它的业务点,哪怕这次调用我只需要用到Item的三分之一的数据字段都不行,每次都会把不需要的字段都查询出来,不管是返回的性能、查询的性能,其实都是可以通过调整设计来避免的; 以往我们的思路都是集中在服务端,常规做法都是提供了一个能够容纳所有查询客户端需求的数据实体

C# 基础知识系列- 17 实战篇 编写一个小工具(1)

三世轮回 提交于 2020-08-19 20:52:13
0. 前言 这是对C# 基础系列的一个总结,现在我们利用之前学到的知识做一个小小的工具来给我们使用。 如果有看过IO篇的小伙伴,应该有印象。当时我提过一个场景描述,我们在平时使用系统的时候,经常会为了找某个文件的位置而烦恼。那么我们现在尝试写一个控制台程序来帮助我们找文件的具体位置。 1. 分析 好,大家应该初步了解了需求内容。然后让我们来做一个简单的需求分析: 简单分析一下需求包括哪些功能点 规划各个功能点的实现方式 嗯,理论上讲还有一大堆的步骤,但因为是个练手的小项目就不扯那么多没用的了。简单来讲就是,分两步: 抓取系统可以访问的所有文件,并保存其全路径 根据输入的参数查询文件的全路径 需求分析完了,然后寻找可以实现的技术,我们现有的技术有IO、文件/路径操作、任务模式等技术,那么可以供我们选择的技术一目了然了:通过文件/目录/路径API访问所有的文件目录,使用字典保存,然后使用Linq查询文件所在目录。 OK,需求分析完了,技术也确认了。那么我们现在开始吧,小伙伴们跟紧了哦,车速不快的。 2. 开始 这里简单演示一下如何用Rider和VSCode、Visual Studio2019创建项目。 2.1. 创建一个名为 FileFinder的项目 a.使用Rider: 点击箭头所指方向: 先在左侧选择Console Application,然后修改 Project name

C# 泛型递归解决方案

怎甘沉沦 提交于 2020-08-19 19:10:55
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 实际开发过程中,我们会遇到很多拥有上下级关系的事物,比如:组织架构,系统的左侧菜单等,数据库设计中,我们一般的解决方案就是把这些拥有上下级关系的表结构设计为:ID Name Sort ParentId Description等字段。 上述字段的含义相信小伙伴都知道对应的含义【ID主键,名称,排序,父亲ID,描述】 那么针对这样的数据结构,我们怎么构造树状数据呢? 下面以一个具体的示例探讨,假设我们有如下一张表: public partial class FranchiseeDept { public FranchiseeDept() { FranchiseeRole = new HashSet<FranchiseeRole> (); FranchiseeUseraccountDept = new HashSet<FranchiseeUseraccountDept> (); FranchiseeUseraccountRole = new HashSet<FranchiseeUseraccountRole> (); } public string DeptId { get ; set ; } public string FranchiseeId { get ; set ; } public string DeptName { get

Querying JSON using SelectTokens? With Newtonsoft.Json.Linq in C#

烂漫一生 提交于 2020-08-19 10:43:35
问题 I'm trying to make use of Netwonsoft.JSON.Linq in C#, to change the "statusCode" values in the following JSON: { "disbursements":[ { "id":"1f337641", "contactId":"f5eb2", "statusCode":166000005, "amount":8, "category":166000001 }, { "id":"027a4762", "contactId":"f5eb2038", "statusCode":166000000, "amount":4000, "category":166000000 } ] } So, inside the JSON data is: "disbursements" which is JSON array. I have to change the "statusCode" of each item in the array to 166000005 . I'm able to