zoukankan      html  css  js  c++  java
  • MVC5 DBContext.Database.SqlQuery获取对象集合到ViewModel集合中(可以利用这个方法给作为前台视图页cshtml页面的@model 源)

    首先我们已经有了一个Model类:

    using System;
    using System.Data.Entity;
    using System.ComponentModel.DataAnnotations;

    namespace MvcEntitiyFrameWork.Models
    {
    public class Movie
    {
    public int ID { get; set; }
    public string Title { get; set; }

    public int DirectorID { get; set; }

    [Display(Name = "上映日期")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy/MM/dd}", ApplyFormatInEditMode = true)]
    public DateTime ReleaseDate { get; set; }

    public decimal Price { get; set; }

    public int GenreID { get; set; }
    public virtual MovieGenre MovieGenre { get; set; }
    public virtual Director Director { get; set; }
    }

    定义一个ViewModel类

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Web;

    namespace MvcEntitiyFrameWork.ViewModels
    {
    public class MovieQuery
    {
    [DataType(DataType.Date)]
    public DateTime? ReleaseDate { get; set; }
    public int MovieCount { get; set; }
    }

    }

    在Movie控制器中定义名为Query的Action: 

    public class MoviesController : Controller
    {
    private MovieDBContext db = new MovieDBContext();

    public ActionResult Query()
    {

    //这里等同于LINQ查询,但是我习惯于用SQL语句来查询数据了(asp.net流派过来的)
    List<MovieQuery> list = db.Database.SqlQuery<MovieQuery>("select ReleaseDate,count(1) as MovieCount from movies group by ReleaseDate").ToList();

    return View(list);

    }

    }

    在视图文件夹Movies下定义一个Query视图页:

    @model IEnumerable<MvcEntitiyFrameWork.ViewModels.MovieQuery>

     <!-- 此处使用的是ViewModels如果不加IEnumerable<>标签就会提示:不包含getenumerator的公共定义 的一个错误-->
    @{
    Layout = null;
    }

    <!DOCTYPE html>

    <html>
    <head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
    </head>
    <body>
    <div>
    <form>
    <table>
    <tr>
    <th>
    Release Date
    </th>
    <th>
    Movies count
    </th>
    </tr>
    @foreach(var item in Model)
    {
    <tr>
    <td>
    @Html.DisplayFor(modelItem => item.ReleaseDate)
    </td>
    <td>
    @item.MovieCount
    </td>
    </tr>
    }
    </table>
    </form>
    </div>
    </body>
    </html>

    最后运行项目,打开该视图页Query,可以看到数据成功绑定到视图页

  • 相关阅读:
    react-native-开发环境搭建
    深入理解js中的立即执行函数(function(){…})()
    html-webpack-plugin详解
    window.getComputedStyle——ref
    react-hot-loader 的配置【局部刷新】--{create-react-app}
    es6 export、import
    echarts 金字塔
    JFinal源码详解
    如何使用JFinal开发javaweb
    MySQL如何修改密码
  • 原文地址:https://www.cnblogs.com/xp1056/p/5515188.html
Copyright © 2011-2022 走看看