linq

.net mvc(一)将数据库提取出来显示在网页

試著忘記壹切 提交于 2020-08-09 10:35:02
默认已经连接数据库,数据库实体名称是:MusicStoreBD.cs 一、实例化数据库 ①在项目文件夹下的Controller中创建新控制器MusicStore(可选操作) ②实例化:MusicStoreBD ms = new MusicStoreBD(); MusicStoreBD ms = new MusicStoreBD(); 二、添加操作 ①提取数据 ②显示数据 public ActionResult Index() { var musiclist = from i in ms.MusicInfo select i; // LinQ语句,从数据库中提取数据 // MusicInfo是一张表 return View(musiclist.ToList()); // 执行ToList()操作,列表 } 注:MusicStore控制器的完整代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MusicStore.Models; namespace MusicStore.Controllers { public class StoreController : Controller { // GET:

Expression<Func<object, bool>> as Property

前提是你 提交于 2020-08-09 09:32:40
问题 I am trying to refactor some code for a generic repository, that passes in a filter object that will filter data, as well as page, sort etc. Each inheriting Filter (Such as CustomerFilter) has the option of defining its own Expression Filter which will get applied by the base class in the repository. So the customer filter will have properties like this: public string CustomerId { get; set; } public override Expression<Func<object, bool>> Predicate => c => ((Customer)c).Id == CustomerId; Then

【asp.net core 系列】8 实战之 利用 EF Core 完成数据操作层的实现

喜你入骨 提交于 2020-08-09 03:00:02
0. 前言 通过前两篇,我们创建了一个项目,并规定了一个基本的数据层访问接口。这一篇,我们将以EF Core为例演示一下数据层访问接口如何实现,以及实现中需要注意的地方。 1. 添加EF Core 先在数据层实现层引入 EF Core: cd Domain.Implements dotnet add package Microsoft.EntityFrameworkCore 当前项目以SqlLite为例,所以再添加一个SqlLite数据库驱动: dotnet add package Microsoft.EntityFrameworkCore.SQLite 删除 Domain.Implements 里默认的Class1.cs 文件,然后添加Insfrastructure目录,创建一个 DefaultContext: using Microsoft.EntityFrameworkCore; namespace Domain.Implements.Insfrastructure { public class DefaultContext : DbContext { private string ConnectStr { get; } public DefaultContext(string connectStr) { ConnectStr = connectStr; }

LINQ中的多个“order by”

梦想与她 提交于 2020-08-09 02:10:06
问题: I have two tables, movies and categories , and I get an ordered list by categoryID first and then by Name . 我有两个表, movies 和 categories ,我首先按 类别ID 获取有序列表,然后按 名称获取 。 The movie table has three columns ID, Name and CategoryID . 影片表有三列 ID,Name和CategoryID 。 The category table has two columns ID and Name . 类别表有两列 ID和名称 。 I tried something like the following, but it didn't work. 我尝试了类似下面的内容,但它没有用。 var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name }) 解决方案: 参考一: https://stackoom.com/question/1Fi9/LINQ中的多个-order-by 参考二: https://oldbug.net/q/1Fi9/Multiple-order-by-in-LINQ 来源: oschina 链接:

动态构建Lambda表达式实现EF动态查询

北城以北 提交于 2020-08-08 18:44:11
在使用Entity Framework做数据查询的时候,查询条件往往不是固定的,需要动态查询。可以通过动态构建Lamda表达式来实现动态查询。 Lamda表达式 使用Lamda表达式可以很方便的按条件过滤数据。Entity Framework也是将Lamda表达式转换成对应的SQL语句执行。 比如下列代码,输出年龄大于1的人的名字: namespace ConsoleApp { public class Person { public string Name { get ; set ; } public int Age { get ; set ; } } class MyDbContext : DbContext { public DbSet<Person> People { get ; set ; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer( " Server=(local);Database=TestDB;User Id=sa;Password=sa; " ); } } class Program { static void Main( string [] args) { MyDbContext

在ts中复用js(为js库自定义.d.ts文件之 linq-ts)

久未见 提交于 2020-08-08 15:07:10
准备 入门typescript实战 1)初始化 npm init -f 2)安装 npm install linq --save 3)卸载 npm uninstall linq --save 4)全局安装 sudo npm install typescript -g --save --unsafe-perm=true --allow-root 5)生成tsconfig.json tsc --init 6)编译main.ts到dist ctrl + shift + b 7)参考csdn https://blog.csdn.net/weixin_30725467/article/details/98322456 8)参考 sudo npm install linq --save --unsafe-perm=true --allow-root npm install linq --save --unsafe-perm=true --allow-root tsconfig.json { "compilerOptions": { /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es5", /* Specify ECMAScript target

基于 abp vNext 和 .NET Core 开发博客项目

给你一囗甜甜゛ 提交于 2020-08-08 11:20:47
上一篇文章( https://www.cnblogs.com/meowv/p/12913676.html )我们用Code-First的方式创建了博客所需的实体类,生成了数据库表,完成了对EF Core的封装。 本篇说一下自定义仓储的实现方式,其实在abp框架中已经默认给我们实现了默认的通用(泛型)仓储, IRepository<TEntity, TKey> ,有着标准的CRUD操作,可以看: https://docs.abp.io/zh-Hans/abp/latest/Repositories 学习更多。 之所以实现自定义仓储,是因为abp没有给我们实现批量插入、更新的方法,这个是需要自己去扩展的。 既然是自定义仓储,那么就有了很高的自由度,我们可以任意发挥,可以接入第三方批量处理数据的库,可以接入Dapper操作等等,在这里贴一下微软官方推荐的一些EF Core的工具和扩展: https://docs.microsoft.com/zh-cn/ef/core/extensions/ 。 自定义仓储 在 .Domain 领域层中创建仓储接口, IPostRepository 、 ICategoryRepository 、 ITagRepository 、 IPostTagRepository 、 IFriendLinkRepository ,这里直接全部继承 IRepository

一个茴字有三种写法——吐槽C#9.0的Records

自古美人都是妖i 提交于 2020-08-08 11:13:25
最近是微软开了Build 2020大会,由于疫情原因,改成了在线举行,Build大会上,C#公布9.0版本。 我个人对于C#的更新向来都是喜闻乐见,乐于接受的,对于博客园上某些人天天嘲讽C#只会增加语法糖的人,我向来对他们不屑一顾,认为他们是井底之蛙。 因此我仔细看了微软发的文章 Welcome to C# 9.0 ,准备好好观摩和学习。但当我看到Records语法时,我就隐隐感觉C#这样玩语法糖要翻车了。 后来看到知乎上的问题 如何评价即将发布的 C# 9.0? ,我稍加思索,愈发觉得Records语法完全是大型翻车现场,因此整理出来我认为的Records的翻车点(兼吐槽)。 首先看官方给出的Records样例 public data class Person { public string FirstName { get; init; } public string LastName { get; init; } } 第一个吐槽点: data class 声明有必要吗?如果要多加一个 data 关键字,直接用 record 不好吗,如果不加关键字,为什么不用 readonly class 啊。 public record Person {} public readonly class Person {} 第二个吐槽点,官方给出上面的等价定义 public data class

linq介绍及工作中应用两例——左联与内联,linq循环方法

旧街凉风 提交于 2020-08-08 08:07:29
目录 1 linq介绍 1.1 linq产生背景 1.2 linq使用范围 1.3 linq核心程序集 1.4 linq架构图 1.5 linq使用形式对比 1.5.1 linq To Objects 1.5.2 linq To Xml 1.5.3 linq To Sql 1.5.4 LINQ to DataSets 1.5.5 小结 2.linq To Objects实际应用两例 2.1左联与内联 2.1.1 本质区别 2.1.2 左联应用 2.1.2.1 程序示例 2.1.2.2 程序解释 2.1.2.3 左联内联比对 2.1.3 内联应用 2.1.3.1 程序示例 2.1.3.2 程序解释 2.1.3.3 左联内联比对 2.1.3.4 左联内联代码比较 2.2 linq循环方法 2.2.1 程序代码 2.2.2 代码应用场景 2.2.3 小结 3.总结 1 linq介绍 1.1 linq产生背景 一个应用服务后台程序,肯定会需要格式各样的数据检索跟操作,而这些数据在过去的这些年里一般都会包含在关系型数据库或者xml文件中。 .Net3.5版本发行之前,传统的数据源访问方式就是直接对数据库或者xml文件进行检索操作。在.Net3.5 Visual Studio 2008版本之后,微软创新地新增了linq(Language INtegrated Query)语法

NewtonSoft JArray - how to select multiple elements with LINQ

久未见 提交于 2020-08-08 07:21:57
问题 I have some JSON which I then parse to JArray object. I want to filter the JArray so it then has only two properties, Title and BodyText. But whatever I try I can only select one value using LINQ. [HttpGet] public JsonResult AjaxGetNewsItems() { string json = JsonConvert.SerializeObject(news.GetNewsItems(), formatting:Formatting.Indented); var v = JArray.Parse(json); //var items = // v.Where( // x => // x["Title"].ToString() != string.Empty && // x["BodyText"].ToString() != string.Empty) //