@*@model IQueryable<EFExam.Models.Product>*@
@model IQueryable<EFExam.Models.ProductViewModel>
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <table border="1">
            <tr>
                <th>ModelNumber</th>
                <th>ModelName</th>
            </tr>
            @* @foreach (EFExam.Models.Product p in Model)
            {
                 <tr><td>@p.ModelNumber</td><td>@p.ModelName</td></tr>
            }*@

            @foreach(EFExam.Models.ProductViewModel p in Model)
            {
                <tr><td>@p.Number</td><td>@p.Name</td></tr>
            }
        </table>
       
    </div>
</body>

</html>

using EFExam.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace EFExam.Controllers
{
    public class ProductController : Controller
    {
        //
        // GET: /Product/

        public ActionResult Index()
        {
            DbContext context = new StoreContext();
            //StoreContext context = new StoreContext();
            //linq
            IQueryable<Product> list;
            //list = from p in context.Products select p; 
            //基本查询
            //list = from p in context.Set<Product>() select p;
            list = context.Set<Product>().Select(p => p);
            

            //单条件查询
            //list = from p in context.Set<Product>() where p.ProductID < 3 select p;
            list = context.Set<Product>().Where(p => p.ProductID < 3);

            //多条件查询
            //list = from p in context.Set<Product>() where p.ProductID < 3 && p.ProductID>2 select p;
            list = context.Set<Product>().Where(p => p.ProductID < 3 && p.ProductID > 2);

            //单列查询
            //var list1 = from p in context.Set<Product>() select p.ModelName;
            var list1 = context.Set<Product>().Select(p => p.ProductID);

            //查询多列 定义ViewMode
             //var list2 = from p in context.Set<Product>() select new ProductViewModel{Number = p.ModelNumber,Name=p.ModelName};
            var list2 = context.Set<Product>().Select(p => new ProductViewModel(){ Number = p.ModelNumber, Name = p.ModelName });
            
            //分页查询 //必须排序后
             list = context.Set<Product>().OrderBy(p=>p.ModelName).Skip(1).Take(1);
            //方法
            //var list = context.Products.Select(p => p);
            return View(list2);
        }

    }
}

MVC EF两种查询方法的更多相关文章

  1. ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板)

    ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板) 题意 题意:给一个n,代表n次操作,接下来每次操作表示把[l,r]区间的线段涂成k的颜色其中,l,r,k的范围都是0到8000 这 ...

  2. [moka同学笔记]YII2.0 判断签约状态,sql的两种查询方法

    方法一: //判断签约状态 $signed = 0; $sql="SELECT * from usho_community_sign_record WHERE com_id=$r->i ...

  3. Entity Framework入门教程(7)--- EF中的查询方法

    这里主要介绍两种查询方法 Linq to entity(L2E)和Sql 1.L2E查询 L2E查询时可以使用linq query语法,或者lambda表达式,默认返回的类型是IQueryable,( ...

  4. KbmMW两种查询结果集通讯方式

    KbmMW本身可以用QueryService的方式进行远程数据查询,但是SmpileService同样具有很强的扩展性可以实现数据查询,下面展示两种基于SmpileService的远程数据查询方法,其 ...

  5. LINQ to Objects系列(2)两种查询语法介绍

    LINQ为我们提供了两种查询语法,分别是查询表达式和查询方法语法.这篇文章分为以下几个方面进行总结. 1,一个包含两种查询语法的简单示例 2,查询表达式的结构 3,查询方法相关的运算符 一个包含两种查 ...

  6. linux安装mysql服务分两种安装方法:

    linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点是安装速度 ...

  7. JS中的两种刷新方法以及区别和适用范围

    在项目中有一个人信息修改的页面,但是修改后显示的却是修改之前的内容,分析问题后发现查询语句写在了修改语句之前,有些某些需要又必须这么写,但是修改信息后先却显示之前的信息也太不科学了. 所以我就想用js ...

  8. 两种js方法发起微信支付:WeixinJSBridge,wx.chooseWXPay区别

    原文链接:https://www.2cto.com/weixin/201507/412752.html 1.为什么会有两种JS方法可以发起微信支付? 当你登陆微信公众号之后,左边有两个菜单栏,一个是微 ...

  9. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

随机推荐

  1. Docker CE for Windows安装使用

    原文:Docker CE for Windows安装使用 官网下载并安装Docker CE for Windows IDEA连接Docker Docker一些常用命令 Docker for windo ...

  2. php汉字字符串长度和截取

    mb_strlen("你好123",'utf-8');//返回5 strlen("你好");//返回几我也不知道,肯定不是2,但你想要2就用上面的 substr ...

  3. 如何查看Outlook邮件的源码(包括ip)

    如何查看Outlook邮件的源码(包括ip) 一.总结 1.右键点击邮件可出现 view message details. 二.如何查看Outlook邮件的源码(包括ip) 1.点收件箱 2.鼠标右键 ...

  4. [React Native] Installing and Linking Modules with Native Code in React Native

    Learn to install JavaScript modules that include native code. Some React Native modules include nati ...

  5. 简洁常用权限系统的设计与实现(四):不维护level,用递归方式构造树

    第三篇中,我们通过维护节点的深度level,通过迭代所有的节点,只需要一次,就构造了树.  本篇,换一种方式. 好处是:不维护节点的深度level,增加和修改节点时,也不用维护.递归实现,代码比较清晰 ...

  6. EL表达式JSON应用

    由于之前在学校写的jsp页面都是夹杂着java代码的,所以之前写了个jsp,满满的<%%>和java代码,老师说那样太不美观了啊!!!要全部用EL表达式替代了.本人还是太笨了,弄了一上午才 ...

  7. 再续FPGA初心,京微齐力脱胎京微雅格重新起航(700万元天使轮,泰有基金领投,水木基金、臻云创投、泰科源跟投。数千万元Pre-A轮融资,领投方为海康基金)

    集微网消息,新的一年开启新的希望,新的空白承载新的梦想.这是年初一集微网给读者们拜年时写的寄语.在中国农历新年开年之际,半导体产业里也迎来了许多新的起点.例如长江存储在与苹果就采购前者的Nand闪存芯 ...

  8. MKNetWorkKit的使用(1)

    在整个程序中只有一个全局队列 MKNetWorkKit中主要有两个类,MKNetworkEngine和 MKNetworkOperation,MKNetworkOperation就是一个操作,是NSO ...

  9. TensorFlow 学习(七) — 常用函数 api、tf.nn 库

    0. 四则运算 平方:tf.square(),开方:tf.sqrt() tf.add().tf.sub().tf.mul().tf.div().tf.mod().tf.abs().tf.neg() 1 ...

  10. unix shell(壳)的简单实现

    用户程序通过调用操作系统提供的系统调用(system call)API 来获得操作系统提供的各种服务.但使用 API 需要手动编写程序.对于不编程序.且需要与操作系统进行交互的用户,又如何使用操作系统 ...