Asp.netMVC模型
Model负责在View和控制器之间进行数据的传递:用户输入的内容封装为Model对象,发给Controller;要显示的数据有Controller放到Model中,然后扔给View去显示。Controller不直接和View进行交互。
查询id>1的狗有如下两种方法:
lambda写法:var r=dogs.where(d=>d.id>1)
Linq写法:var r2=from d in dogs where d.id>1 select d;
Linq基本语法:以from item in items开始,items为待处理的集合,item为每一项的变量名;最后要加上select,表示结果的数据;记得select一定要放在最后
All---------Grouped
List<Product>products=GetProductList();
var productGroups=from p in products
group p by p.Category into g
where g.All(p=>p.UnitsInStock>0)
select new { Category =g.Key, Products = g };
Count-----Simple
获取列表中没有重复的元素数量
int []factors={ 2, 2, 3, 5, 5};
int unique=factors.Distinct().Count();
Console.WriteLine("There are {0} unique factors",unique);
Count---Nested
List<Customer> customers=GetCustomerList();
var orderCounts=from c in customers
select new{ c.CustomerID,OrderCount=c.Orders.Count() };
Count --------Grouped
List<Product>products=GetProductList();
var categoryCounts=from p in products
group p by p.Category into g
select new { Category=g.Key,ProductCount=g.Count() };
Sum----Grouped
List<Product>products=GetProductList();
var categories=from p in products
group p by p.Category into g
select new { Category=g.Key, TotalUnitsInstock=g.Sum(p=>p.UnitsInStock) };
ObjectDumper.Write(categories);
Min-----Projection
string[]words={"cherry","apple","blueberry"};
int shortestWord=words.Min(w=>w.Length);
Console.WriteLine("The shortest word is {0} characters long.",shortestWord);
Min-----Grouped
List<Product>products=GetProductList();
var categories=from p in products
group p by p.Category into g
select new { Category=g.Key , CheapestPrice=g.Min(p=>p.UnitPrice) };
ObjectDumper.Write(categories);
Min------Elements
List<Product>prodducts=GetProductList();
var categories=from p in products
group p by p.Category into g
let minPrice=g.Min(p=>p.UnitPrice)
select new { Category=g.Key,CheapestProducts=g.Where(p=>p.UnitPrice==minPrice) };
Max----Projection
string [ ] words={ "cherry", "apple", "blueberry" };
int longestLength=words.Max(w=>w.Length);
Console.WriteLine("The longest word is {0} characters long",longestLength);
Max-----Grouped
List<Product>products=GetProductList();
var categories=from p in products
group p by p.Category into g
select new {Category=g.Key,MostExpensivePrice=g.Max(p=>p.UnitPrice) };
Max------Elements
List<Product>products=GetProductList();
var categories=from p in products
group p by p.Category into g
let maxPrice=g.Max(p=>p.UnitPrice)
select new { Category=g.Key, MostExpensiveProducts=g.Where(p=>p.UnitPrice==maxPrice) };
ObjectDumper.Write(categories,1);
Average ---Projection
string[] words={"cherry", "apple", "blueberry"};
double averageLength=words.Average(w=>w.Length);
Console.WriteLine("The average word length is {0} characters.",averageLength);
Average----Grouped
List<Product>products=GetProductList();
var categories=from p in products
group p by p.Category into g
select new {Category=g.Key, AveragePrice=g.Average(p=>p.UnitPrice) };
Aggregate----Simple
这个例子是数组中所有的元素相乘,求出最终的积
double[] doubles={1.7, 2.3, 1.9, 4.1, 2.9};
double product=doubles.Aggregate((runningProduct,nextFactor)=>runningProduct*nextFactor);
Console.WriteLine("Total product of all numbers:{0}",product);
Concat----1
求两个集合的合集
int[] numbersA={0,2,4,5,6,8,9};
int[] numbersB={1,3,5,7,8};
var allNumbers=numbersA.Concat(numbersB);
Console.WriteLine("All numbers from both arrays:");
foreach(var n in allNumbers){
Console.WriteLine(n);
}
Concat---2
List<Customer>customers=GetCustomerList();
List<Product>products=GetProductList();
var customerNames=from c in customers
select c.CompanyName;
var productNames=from p in products
select p.ProductName;
var allNames=customerNames.Concat(productNames);
Console.WriteLine("Customer and product names:");
foreach(var n in allNames){
Console.WriteLine(n);
}
SequenceEqual--1
var wordA=new string[]{ "cherry", "apple", "blueberry"};
var wordB=new string[]{"cherry", "apple", "blueberry"};
bool match=wordsA.SequenceEqual(wordsB);
Console.WriteLine("The sequences match: {0} ",match);
SequenceEqual--2
var wordsA=new string[]{"cherry", "apple", "blueberry"};
var wordsB=new string[]{"apple","blueberry","cherry"};
bool match=wordsA.SequenceEqual(wordsB);
Console.WriteLine("The sequences match:{0}", match);
List集合Group by 查询
var groupList=chRCheckConfirmList.GroupBy(x=>new {x.CompanyId, x.Type, x.ChRCheckItemConfigId}).select(group=>new { Keys=group.Key, TotalScore=group.Sum(p=>p.Score)})
Asp.netMVC模型的更多相关文章
- .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)
阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1.1.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型) 2.迁移ViewModel设置到外 ...
- .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)
阅读目录: 7.HtmlHelper.HtmlHelper<T>中的ViewModel的类型推断 8.控制ViewModel中的某个属性的呈现(使用PartialView部分视图细粒度控制 ...
- .NET/ASP.NETMVC Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(一)
.NET/ASP.NETMVC Model元数据.HtmlHelper.自定义模板.模板的装饰者模式(一) 阅读目录: 1.开篇介绍 2.Model与View的使用关系(数据上下文DataContex ...
- WCF、WebAPI、WCFREST和Web服务的差异 ASP.NETMVC和ASP.NETWebAPI的差异
WCF.WebAPI.WCFREST和Web服务的差异: Web服务 它是基于SOAP和XML的形式返回数据. 它仅支持HTTP协议. 它是开放源,但是不消耗任何客户端可以同时理解XML. 它可以仅在 ...
- 一步一步搭框架(asp.netmvc+easyui+sqlserver)-03
一步一步搭框架(asp.netmvc+easyui+sqlserver)-03 我们期望简洁的后台代码,如下: using System; using System.Collections.Gener ...
- 一步一步搭框架(asp.netmvc+easyui+sqlserver)-02
一步一步搭框架(asp.netmvc+easyui+sqlserver)-02 我们期望简洁带前台代码,如下: <table id="dataGrid" class=&quo ...
- 一步一步搭框架(asp.netmvc+easyui+sqlserver)-01
一步一步搭框架(asp.netmvc+easyui+sqlserver)-01 要搭建的框架是企业级开发框架,适用用企业管理信息系统的开发,如:OA.HR等 1.框架名称:sampleFrame. 2 ...
- Winserver2008R2 .netframework4.5 asp.netmvc 访问出现的是文件列表。
Winserver2008R2 .netframework4.5 asp.netmvc 访问出现的是文件列表,服务器需要安装如下的补丁,才可正常访问. http://www.microsoft.com ...
- 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包
因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户,让客户直接可以点下一步下一步安装部署web程序,并且同时要将IIS服务和mysql一同安装到服务器上,因为客户的电脑可能是 ...
随机推荐
- jQuery中的动画方法
对角线动画 hide():显示 可以写两个参数——第一个参数 数字类型:毫秒 字符串类型: slow:慢 600ms normal:比slow快 比fast慢 400ms fast:快 ...
- 章节十一、1-Junit介绍
一.Junit是一个开源的测试框架,在selenium的jar包中,不需要单独安装和搭建环境 二.@BeforeClass:当在方法上加了这个注解的话,这个方法会在这个类的第一个test方法之前运行. ...
- SQL server数据库表碎片比例查询语句
For rebuilding index, here is also a script to figure out the fragmentation and decide whether rebui ...
- 如何自己制作CHM电子书?
软件介绍: EasyCHM 非常适合个人和单位制作高压缩比的有目录.索引,同时具有全文检索及高亮显示搜索结果的网页集锦.CHM格式的帮助文件.专业的产品说明书.公司介绍.文章集锦.CHM电子书等等. ...
- C# -- 泛型的使用
C# -- 泛型的使用 1. 使用泛型 class Program { static void Main(string[] args) { ; string str = "Hello&quo ...
- Java基础系列--02_运算符和程序的语句
运算符: (1)算术运算符: +,-,*,/,%,++,--(加.减.乘.除.取余.自增,自减) ++和--的注意事项: a:他们的作用是自增或者自减 b:使用 1.单独使用 放在操作数据的前面和后面 ...
- 任意N个不同数的逆序对平均值
在学习数据结构的时候看到了以下定理: 但是老师并没有解释,本着钻研的精神决定搞清楚为什么是这个数. 在百度 google一番之后并没有找到,决定自己试着证明. 最开始走了一些弯路,但突然灵光一闪很容易 ...
- 《Python神经网络编程》的读书笔记
文章提纲 全书总评 读书笔记 C01.神经网络如何工作? C02.使用Python进行DIY C03.开拓思维 附录A.微积分简介 附录B.树莓派 全书总评 书本印刷质量:4星.纸张是米黄色,可以保护 ...
- Loj #3096. 「SNOI2019」数论
Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...
- 数据结构学习之栈求解n皇后问题
数据结构学习之栈求解n皇后问题 0x1 目的 深入掌握栈应用的算法和设计 0x2 内容 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后 ...