MVC里模型常用的一些操作
学习也是做买卖,归根到底还是学习成本的问题。
下面把微软集合类型的增删改查稍微罗列一下,大家看看它能带来的便利,和你要学的新东西,还有风险(纯粹的数据操作,不用框架,风险其实不大)相比,是否值得。来决定是跳过,还是了解,还是精研。(建议敲一遍了解一下,以后写的东西如果频繁遇到数据的小操作,可以回来翻翻,研究研究,多个选择)
1、增删改查
var a = new List<Person>();
Person user;
a.Add(new Person() { Name = "zs", Nl = });
a.Add(new Person() { Name = "ls", Nl = });
a.Add(new Person() { Name = "ww", Nl = });
user = (from x in a where x.Name == "zs" select x).Single();
////a.Remove(user);
//user.Nl=25; foreach (var item in a)
{
Console.WriteLine(item.Name + "\t" + item.Nl); }
Console.ReadKey();
说明:
(1)第6行括号里是一种微软筛选数据的语法,叫做Linq。Linq还是有点东西的,绝不像例子里写的那么简单。有关这种语法,可以自己搜着看看,了解一下。
(2)single方法的作用是,从集合(由一条完全相同的记录重复构成)中转化出一条记录,有点像类型转换,从多条变一条。如果原集合含有多条不相同的数据,则报错。
(3)第7行会删除查到的数据,第8行会修改查到的数据。如果是真正的数据模型,记得要用savechanges存入库。
(4)批量删除可以用RemoveAll方法,和lambda表达式一起用。
(5)批量修改可以用下面的代码:
var guys = from x in a where x.Nl > select x;
foreach (var item in guys)
{
item.Nl++;
}
2、不用Linq,这一系列有些扩展方法,比如:
Where,Max,Select,Sum,Any,Average,All,Concat等
都是针对IEnumerable的对象进行扩展的
也就是说,只要实现了IEnumerable接口,就可以使用这些扩展方法(List和Dbset都实现了的)
来看看这段代码:
List<int> arr = new List<int>() { , , , , , , };
var result = arr.Where(a => { return a > ; }).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 = });
a.Add(new Person() { Name = "ls", Nl = });
a.Add(new Person() { Name = "ww", Nl = });
var result = a.Where(b => b.Nl > ).Select(b=>b.Nl).Sum();//所有人18岁以上的人,年龄求和。
Console.WriteLine(result);
Console.WriteLine(a.Any(x => x.Nl < ));// 如果集合中有任何一个元素满足该条件就返回true
Console.WriteLine(a.Where(b => b.Nl > ).All(x=>x.Nl < ));// 如果集合中所有元素都满足该条件,返回true
foreach (var item in a.Where(b => b.Nl > ).Concat(a))//Concat用来连接两个集合
{
Console.WriteLine(item.Name + "\t" + item.Nl);
}
Console.ReadKey();
可以自己运行一下,看看效果。
需要注意的是,any的用法以上面的注释为准,vs的提示(所有元素都满足条件才返回true)是错的。
MVC里模型常用的一些操作的更多相关文章
- Django之模型层:表操作
目录 Django之模型层:表操作 一.ORM简介 django测试环境搭建 Django终端打印SQL语句 二 单表操作 2.1 按步骤创建表 2.2记录 三.多表操作 1 创建模型 2 添加.删除 ...
- ASP.NET MVC+EF5 开发常用代码
Asp.Net Mvc,EF 技术常用点总结 1.Asp.Net MVC a)获得当前控制器名和当前操作的名称(action) 1.Action 中 RouteData.Values[" ...
- ASP.NET MVC数组模型绑定
在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type="text" name ...
- MVC数组模型绑定
ASP.NET MVC数组模型绑定 在ASP.NET MVC中使用Razor语法可以在视图中方便地展示数组,如果要进行数组模型绑定,会遇到索引断裂问题,如下示例: <input type=& ...
- ---web模型 --mvc和模型--struts2 入门
关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...
- 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- ASP.NET Core 中文文档 第四章 MVC(4.2)控制器操作的路由
原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NE ...
- MVC 编程模型及其变种
MVC 编程模型及其变种 MVC全称是Model View Controller, 这是一个模型(model)-查看(view)-调节器(controller)缩写,这是通过通用的编程模型非.MVC当 ...
- TP5常用命令符操作
ThinkPHP5常用命令符操作 1. 模块自动生成指令: 默认会读取应用目录application下面的build.php作为自动 生成的定义文件,如果你的定义文件位置不同,则需要使用 ...
随机推荐
- JavaWeb中点赞功能的实现及完整实例
实现原理1.功能描述:一个用户对同一文章只能点赞一次,第二次就是取消赞2.建立一个点赞表great,字段有文章ID(aid),点赞用户ID(uid)3.当有用户进行点赞行为时,使用aid和uid搜索点 ...
- Python:tarxjb简单、安全文件拷贝、传输
tarxjb 简单.安全文件拷贝.传输 描述 通过python paramiko库实现简易ssh.sftp执行操作,从而实现文件的远程传输 Github 优点: 可靠传输,文件不易受损 安全传输,避免 ...
- 使用Visual Studio学习C语言
注明:安装的是社区版,只写大部分步骤,做笔记之用.详细还需要看B站教程,https://www.bilibili.com/video/av59608520 一.安装软件 1.安装Visual Stud ...
- html 后手
1.a (1.)超链接 <a href="new.html">点击进入到新网页</a>这里可以直接跳转到一个页面 <a href="http ...
- ConcurrentSkipListMap的常用方法
package com.geo.map; import java.util.Iterator;import java.util.Map.Entry;import java.util.Set;impo ...
- JS高阶---闭包面试题
[面试题1] 答案:The Window 分析: 本案例里,不存在闭包. 条件: .函数嵌套(满足) .内部函数调用外部函数变量(没有) 综上所述,该例中不存在闭包 [面试题2] 答案:My Obje ...
- python字典基本操作
字典是python中五中基本数据类型之一,虽然它的赋值稍微麻烦点,但用起来真的是很方便.它用键值对来存放数据,所谓键值对,就是一个键,对应一个值,如果后面对前面的键再次赋值,第一次的值就被覆盖掉.像是 ...
- Pycharm工具使用和安装
1.安装包:https://pan.baidu.com/s/1O9JwuowlodhTR1m0VaKmhg 2.双击安装包安装: 3.选择安装目录 4.安装选项,Create Associations ...
- Ant下载与安装
1.登录http://ant.apache.org/bindownload.cgi 站点下载Ant最新版建议Windows平台下载*.zip压缩包 2.将下载到的压缩文件压缩到(G:software\ ...
- 洛谷 U86564 排队形
洛谷 U86564 排队形 题目传送门 题目背景 \(JDFZ2019\)秋季运动会开始辣!为了使强大的高一 · \(6\)班有一个更好的精神面貌,班主任\(T\)老师和体委\(LY\),\(LYB\ ...