MVC里模型常用的一些操作

学习也是做买卖,归根到底还是学习成本的问题。

下面把微软集合类型的增删改查稍微罗列一下,大家看看它能带来的便利,和你要学的新东西,还有风险(纯粹的数据操作,不用框架,风险其实不大)相比,是否值得。来决定是跳过,还是了解,还是精研。(建议敲一遍了解一下,以后写的东西如果频繁遇到数据的小操作,可以回来翻翻,研究研究,多个选择)

1、增删改查

 1 var a = new List<Person>();
 2             Person user;
 3             a.Add(new Person() { Name = "zs", Nl = 20 });
 4             a.Add(new Person() { Name = "ls", Nl = 18 });
 5             a.Add(new Person() { Name = "ww", Nl = 19 });
 6             user = (from x in a where x.Name == "zs" select x).Single();
 7             ////a.Remove(user);
 8             //user.Nl=25;
 9
10             foreach (var item in a)
11             {
12                 Console.WriteLine(item.Name + "\t" + item.Nl);
13
14             }
15             Console.ReadKey();

说明:

  (1)第6行括号里是一种微软筛选数据的语法,叫做Linq。Linq还是有点东西的,绝不像例子里写的那么简单。有关这种语法,可以自己搜着看看,了解一下。

  (2)single方法的作用是,从集合(由一条完全相同的记录重复构成)中转化出一条记录,有点像类型转换,从多条变一条。如果原集合含有多条不相同的数据,则报错。

  (3)第7行会删除查到的数据,第8行会修改查到的数据。如果是真正的数据模型,记得要用savechanges存入库。

  (4)批量删除可以用RemoveAll方法,和lambda表达式一起用。

  (5)批量修改可以用下面的代码:

1 var guys = from x in a where x.Nl > 18 select x;
2             foreach (var item in guys)
3             {
4                 item.Nl++;
5             }

2、不用Linq,这一系列有些扩展方法,比如:

      Where,Max,Select,Sum,Any,Average,All,Concat等

      都是针对IEnumerable的对象进行扩展的

      也就是说,只要实现了IEnumerable接口,就可以使用这些扩展方法(List和Dbset都实现了的)

      来看看这段代码:      

List<int> arr = new List<int>() { 1, 2, 3, 4, 5, 6, 7 };
var result = arr.Where(a => { return a > 3; }).Sum();
Console.WriteLine(result);
Console.ReadKey();

      这段代码中,用到了两个扩展方法。

      <1>

        Where扩展方法,需要传入一个Func<int,bool>类型的泛型委托

        这个泛型委托,需要一个int类型的输入参数和一个布尔类型的返回值

        我们直接把a => { return a > 3; }这个lambda表达式传递给了Where方法

        a就是int类型的输入参数,返回a是否大于3的结果。

      <2>

        Sum扩展方法计算了Where扩展方法返回的集合的和。

另外的例子:

var a = new List<Person>();
            a.Add(new Person() { Name = "zs", Nl = 200 });
            a.Add(new Person() { Name = "ls", Nl = 18 });
            a.Add(new Person() { Name = "ww", Nl = 19 });
            var result = a.Where(b => b.Nl > 18).Select(b=>b.Nl).Sum();//所有人18岁以上的人,年龄求和。
            Console.WriteLine(result);
            Console.WriteLine(a.Any(x => x.Nl < 20));// 如果集合中有任何一个元素满足该条件就返回true
            Console.WriteLine(a.Where(b => b.Nl > 18).All(x=>x.Nl < 20));// 如果集合中所有元素都满足该条件,返回true
            foreach (var item in a.Where(b => b.Nl > 18).Concat(a))//Concat用来连接两个集合
            {
                Console.WriteLine(item.Name + "\t" + item.Nl);
            }
            Console.ReadKey();

可以自己运行一下,看看效果。

需要注意的是,any的用法以上面的注释为准,vs的提示(所有元素都满足条件才返回true)是错的。

原文地址:https://www.cnblogs.com/wanjinliu/p/11718994.html

时间: 2024-10-03 09:58:08

MVC里模型常用的一些操作的相关文章

理解ASP.NET中MVC 编程模型 第3章 数据模型

MVC 模型 MVC 模型包含所有应用程序逻辑(业务逻辑.验证逻辑.数据访问逻辑),除了纯视图和控制器逻辑.通过 MVC,模型可保存并操作应用程序数据. Models 文件夹 Models 文件夹包含表示应用程序模型的类. 以登录验证为例,创建一个 AccountModels.cs 文件,用于应用程序安全的模型. AccountModels 包含 LogOnModel.ChangePasswordModel 以及 RegisterModel. LogOnModel: public class L

ASP.NET MVC+EF5 开发常用代码

Asp.Net Mvc,EF 技术常用点总结 1.Asp.Net MVC a)获得当前控制器名和当前操作的名称(action) 1.Action 中 RouteData.Values["controller"].ToString(); RouteData.Values["action"].ToString(); 2.页面中(view) ViewContext.RouteData.Values["controller"].ToString().To

关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作)

关于黑客,你了解多少?----黑客入门学习(常用术语+DOS操作) ·1.1·前言 黑客一次是由英语"Hacker"英译出来的,是指专门研究.发现计算机和网络漏洞的计算机爱好者,他们伴随着计算机和网络的发展而产生成长.黑客对计算机有着狂热的兴趣和执着的追求,他们不断的研究计算机和网络知识,发现计算机和网络中存在的漏洞,喜欢挑战高难度的网络系统并从中找到漏洞,然后向管理员提出解决和修补漏洞的方法. 黑客的出现推动了计算机和网络的发展与完善.他们所做的不是恶意破坏,他们是一群纵横于网络的大

MVC数组模型绑定

ASP.NET MVC数组模型绑定 在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name="[0].Name" /> <input type="text" name="[1].Name" /> <input type="text" name="[2

ASP.NET MVC数组模型绑定

在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name="[0].Name" /> <input type="text" name="[1].Name" /> <input type="text" name="[2].Name" />

Angular JS从入门基础 mvc三层架构 常用指令

Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. 1.常用指令 AngularJS 通过指令扩展了HTML,且通过表达式绑定数据到 HTML.下面我们看一下AngularJS中的常用指令. (1).基本概念 指令:AngularJS中,通过扩展HTML的属性提供功能.所以,ng-

MVC 编程模型及其变种

MVC 编程模型及其变种 MVC全称是Model View Controller, 这是一个模型(model)-查看(view)-调节器(controller)缩写,这是通过通用的编程模型非.MVC当为了分离数据和视图首次提出,数据和实体之间的关系.这就是关注点分离的设计理念,也是单一职责原则(Single-Resposibility Principle). 在我们的开发过程中, 视图用来展现界面, 我们的模型处理业务, 持有数据, 而控制器是他们之间的中间人. GoF四人组觉得MVC是"一组用

理解ASP.NET中MVC 编程模型 上

MVC 编程模型 MVC 是 ASP.NET 开发模型之一. MVC 是用于构建 web 应用程序的一种框架,使用 MVC (Model View Controller) 设计: Model(模型)表示应用程序核心(比如数据库记录列表) View(视图)对数据(数据库记录)进行显示 Controller(控制器)处理输入(写入数据库记录) MVC 模型同时提供对 HTML.CSS 以及 JavaScript 的完整控制. MVC 模型通过三个逻辑层来定义 web 应用程序: business l

TP5常用命令符操作

ThinkPHP5常用命令符操作 1. 模块自动生成指令: 默认会读取应用目录application下面的build.php作为自动 生成的定义文件,如果你的定义文件位置不同,则需要使用 --config 参数指定如下: php think build (--config build.php) 2. 快速生成类库文件 1) 快速生成控制器类 执行下面的指令可以生成 index模块的 Blog控制器类库文件 php think make:controller index/Blog 2) 快速生成模