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模型的更多相关文章

  1. .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)

    阅读目录: 1.需求背景介绍(Model元数据设置项应该与View绑定而非ViewModel) 1.1.确定问题域范围(可以使用DSL管理问题域前提是锁定领域模型) 2.迁移ViewModel设置到外 ...

  2. .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)

    阅读目录: 7.HtmlHelper.HtmlHelper<T>中的ViewModel的类型推断 8.控制ViewModel中的某个属性的呈现(使用PartialView部分视图细粒度控制 ...

  3. .NET/ASP.NETMVC Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(一)

    .NET/ASP.NETMVC Model元数据.HtmlHelper.自定义模板.模板的装饰者模式(一) 阅读目录: 1.开篇介绍 2.Model与View的使用关系(数据上下文DataContex ...

  4. WCF、WebAPI、WCFREST和Web服务的差异 ASP.NETMVC和ASP.NETWebAPI的差异

    WCF.WebAPI.WCFREST和Web服务的差异: Web服务 它是基于SOAP和XML的形式返回数据. 它仅支持HTTP协议. 它是开放源,但是不消耗任何客户端可以同时理解XML. 它可以仅在 ...

  5. 一步一步搭框架(asp.netmvc+easyui+sqlserver)-03

    一步一步搭框架(asp.netmvc+easyui+sqlserver)-03 我们期望简洁的后台代码,如下: using System; using System.Collections.Gener ...

  6. 一步一步搭框架(asp.netmvc+easyui+sqlserver)-02

    一步一步搭框架(asp.netmvc+easyui+sqlserver)-02 我们期望简洁带前台代码,如下: <table id="dataGrid" class=&quo ...

  7. 一步一步搭框架(asp.netmvc+easyui+sqlserver)-01

    一步一步搭框架(asp.netmvc+easyui+sqlserver)-01 要搭建的框架是企业级开发框架,适用用企业管理信息系统的开发,如:OA.HR等 1.框架名称:sampleFrame. 2 ...

  8. Winserver2008R2 .netframework4.5 asp.netmvc 访问出现的是文件列表。

    Winserver2008R2 .netframework4.5 asp.netmvc 访问出现的是文件列表,服务器需要安装如下的补丁,才可正常访问. http://www.microsoft.com ...

  9. 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包

    因为业务需要,项目中需要把asp.netmvc项目打包成exe安装程序给客户,让客户直接可以点下一步下一步安装部署web程序,并且同时要将IIS服务和mysql一同安装到服务器上,因为客户的电脑可能是 ...

随机推荐

  1. openlayers二:添加矢量图形文字

    openlayers可方便的在地图上添加圆.多边形.文字等矢量内容,修改这些矢量内容的样式也很简单. 首先需要添加一个向量图层: initVectorLayer: function () { this ...

  2. 【升鲜宝】生鲜配送管理系统_升鲜宝 V2.0 按客户商品分类分开打印配送与按客户商品分类导出相关订单商品相关说明(一)

    [升鲜宝]生鲜配送管理系统_升鲜宝 V2.0 按[客户]的商品分类分开打印(配送单)与按[客户]商品分类[对账单]导出相关销售订单商品功能相关说明(一) 业务场景概述与痛点 1.中小学校食堂的客户,每 ...

  3. intellij idea 2017和Jprofiler 10的集成 报错问题

    本来想用Jprofiler来分析一下自己写的Java项目,以提高代码执行效率和自己的编码能力.结果,官网和网上很多帖子都写了点出session->IDE integrations->选择i ...

  4. MySQL数据库在IO性能优化方面的设置选择(硬件)

    提起MySQL数据库在硬件方面的优化无非是CPU.内存和IO.下面我们着重梳理一下关于磁盘I/O方面的优化. 1.磁盘冗余阵列RAID RAID(Redundant Array of Inexpens ...

  5. 解析SQL Server之任务调度

    在前面两篇文章中( 浅谈SQL Server内部运行机制 and 浅谈SQL Server数据内部表现形式 ),我们交流了一些关于SQL Server的一些术语,SQL Sever引擎 与SSMS抽象 ...

  6. Shell 全局变量、环境变量和局部变量

    Shell 变量的作用域(Scope),就是 Shell 变量的有效范围(可以使用的范围). 在不同的作用域中,同名的变量不会相互干涉,就好像 A 班有个叫小明的同学,B 班也有个叫小明的同学,虽然他 ...

  7. mysql5.7出现大量too many connections及too many open files错误,且配置最大连接数未生效

    too many connections是由于mysql配置中连接数过少,不足以支撑当前的并发数,too many open files是由于mysql open_files_limit的值大小不够. ...

  8. JS 设计模式八 -- 发布订阅者模式

    概念 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多(一个发布,多个观察)的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 优点 1 ...

  9. c#枚举位运算操作

    抛出预设问题 需要有一个npc需要在一周中的,周一,周二,周三会出现,其他时间不可见 解决问题 因为一周时间是固定的,所以创建枚举类型比较合适,如下 enum Days { None, Sunday, ...

  10. linux 下ab压力测试

    1.ab的简介 ab是apachebench命令的缩写. ab是apache自带的压力测试工具.ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试 ...