MVC 中使用EF

EF

1)简单查询

后台代码

 1 using MvcApplication18.Models;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Data.SqlClient;
 5 using System.Linq;
 6 using System.Web;
 7 using System.Web.Mvc;
 8
 9 namespace MvcApplication18.Controllers
10 {
11     public class HomeController : Controller
12     {
13         //
14         // GET: /Home/
15         appDBEntities db = new appDBEntities();
16         public ActionResult Index()
17         {
18             SqlParameter[] parameter = { };
19             List<SecondHand_info> list = db.Database.SqlQuery<SecondHand_info>("select * from SecondHand_info where SecondHand_keyID >88", parameter).ToList();
20           ViewData["list"] = list;
21             return View();
22         }
23
24     }
25 }

前台代码

 1 @model MvcApplication18.Models.SecondHand_info
 2 @using MvcApplication18.Models
 3 @{
 4     ViewBag.Title = "Index";
 5 }
 6
 7 @foreach (SecondHand_info item in ViewData["list"] as List<SecondHand_info>)
 8 {
 9   <p>@item.SecondHand_keyID </p>
10      <p>@item.SecondHand_mobile </p>
11      <p>@item.SecondHand_title </p>
12      <p>@item.SecondHand_context </p>
13
14 }

2)带参数查询

后台代码

 1 using MvcApplication18.Models;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Data.SqlClient;
 5 using System.Linq;
 6 using System.Web;
 7 using System.Web.Mvc;
 8
 9 namespace MvcApplication18.Controllers
10 {
11     public class HomeController : Controller
12     {
13         //
14         // GET: /Home/
15         appDBEntities db = new appDBEntities();
16         public ActionResult Index()
17         {
18             var id = "88";
19             var mobile = "18017848011";
20             var sql = "select * from SecondHand_info where SecondHand_keyID [email protected] and [email protected]";
21          List<SecondHand_info> list=   db.Database.SqlQuery<SecondHand_info>(
22                 sql,
23                 new SqlParameter("@id",id),
24                 new SqlParameter("@mobile",mobile)
25
26                 ).ToList();
27          db.SaveChanges();
28           ViewData["list"] = list;
29             return View();
30         }
31
32     }
33 }

前台代码

 1 @model MvcApplication18.Models.SecondHand_info
 2 @using MvcApplication18.Models
 3 @{
 4     ViewBag.Title = "Index";
 5 }
 6
 7 @foreach (SecondHand_info item in ViewData["list"] as List<SecondHand_info>)
 8 {
 9   <p>@item.SecondHand_keyID </p>
10      <p>@item.SecondHand_mobile </p>
11      <p>@item.SecondHand_title </p>
12      <p>@item.SecondHand_context </p>
13
14 }
15 <h2>Index</h2>

3)修改

后台代码

using MvcApplication18.Models;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication18.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        appDBEntities db = new appDBEntities();
        public ActionResult Index()
        {

            //修改
            List<SecondHand_info> list = db.Set<SecondHand_info>().SqlQuery("select * from SecondHand_info where SecondHand_keyID =88").ToList();
            list.Last().SecondHand_mobile = "18017848011";//把SecondHand_keyID =88 的手机号改为18017848011
            db.SaveChanges();
          ViewData["list"] = list;
            return View();
        }

    }
}

前台代码

 1 @model MvcApplication18.Models.SecondHand_info
 2 @using MvcApplication18.Models
 3 @{
 4     ViewBag.Title = "Index";
 5 }
 6
 7 @foreach (SecondHand_info item in ViewData["list"] as List<SecondHand_info>)
 8 {
 9   <p>@item.SecondHand_keyID </p>
10      <p>@item.SecondHand_mobile </p>
11      <p>@item.SecondHand_title </p>
12      <p>@item.SecondHand_context </p>
13
14 }

4)带参数的存储过程(所以字段都要列出不然会出现问题)

1 create proc P_QuerybyId_secondhand
2 @SecondHand_keyID int
3 as
4 begin
5 select SecondHand_keyID, SecondHand_mobile, SecondHand_title, SecondHand_new, SecondHand_type, SecondHand_money, SecondHand_context, SecondHand_pic1, SecondHand_pic2, SecondHand_pic3, SecondHand_pic4, SecondHand_pic5, SecondHand_pic, SecondHand_time, Memo FROM SecondHand_info where SecondHand_keyID=@SecondHand_keyID
6 end

 1 using MvcApplication18.Models;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Data.SqlClient;
 5 using System.Linq;
 6 using System.Web;
 7 using System.Web.Mvc;
 8
 9 namespace MvcApplication18.Controllers
10 {
11     public class HomeController : Controller
12     {
13         //
14         // GET: /Home/
15         appDBEntities db = new appDBEntities();
16         public ActionResult Index()
17         {
18
19             var param = new SqlParameter("SecondHand_keyID", 89);
20             List<SecondHand_info> list = db.Database.SqlQuery<SecondHand_info>("P_QuerybyId_secondhand @SecondHand_keyID", param).ToList();
21          db.SaveChanges();
22           ViewData["list"] = list;
23             return View();
24         }
25
26     }
27 }

 1 @model MvcApplication18.Models.SecondHand_info
 2 @using MvcApplication18.Models
 3 @{
 4     ViewBag.Title = "Index";
 5 }
 6
 7 @foreach (SecondHand_info item in ViewData["list"] as List<SecondHand_info>)
 8 {
 9   <p>@item.SecondHand_keyID </p>
10      <p>@item.SecondHand_mobile </p>
11      <p>@item.SecondHand_title </p>
12      <p>@item.SecondHand_context </p>
13
14 }
15 <h2>Index</h2>

5)带输出参数的存储过程

 1 CREATE PROCEDURE [dbo].[Myproc]
 2     @Name NVARCHAR(max),
 3     @PageIndex int,
 4     @PageSize INT,
 5     @TotalCount int OUTPUT
 6 as
 7
 8     declare @startRow int
 9     declare @endRow    int
10
11     set @startRow = (@PageIndex - 1) * @PageSize + 1
12     set @endRow = @startRow + @PageSize - 1
13
14     select *
15     FROM
16     (
17         select top (@endRow)
18            ID,
19             Age,
20             Name,
21             row_number() over(order by [ID] desc) as [RowIndex]
22         from dbo.Student
23     ) as T
24     where [RowIndex] >= @startRow AND T.Name = @Name
25
26     SET @TotalCount=(select count(1) as N
27     FROM dbo.Student WHERE Name = @Name) 

1 var name = new SqlParameter { ParameterName = "Name", Value = Name };
2             var currentpage = new SqlParameter { ParameterName = "PageIndex", Value = currentPage };
3             var pagesize = new SqlParameter { ParameterName = "PageSize", Value = pageSize };
4             var totalcount = new SqlParameter { ParameterName = "TotalCount", Value = 0, Direction = ParameterDirection.Output };
5
6             var list = ctx.Database.SqlQuery<Student>("Myproc @Name, @PageIndex, @PageSize, @TotalCount output",
7         name, currentpage, pagesize, totalcount);
8
9             totalCount = (int)totalcount.Value;  /*获得要输出参数totalcount的值*/

时间: 2024-10-21 14:08:20

MVC 中使用EF的相关文章

MVC中使用EF+MySQL

最近一段时间,想在EF中使用MySQL,于是就进行了测试. 我的环境是VS2013+EF6+MySQL5.7.4 首先要下载MySQL For VisualStudio 1.1.4.ConnectorNet 6.8.3这两个东西. 然后在NuGet程序包中添加EntityFramework(不能是EF5)和MySQL.Data.Entities(这个也是第6版的) 添加后就会有如下图的两个dll 然后在对应的config文件下的entityFramework节点进行修改或添加 <entityFr

关于在ASP.NET MVC 中使用EF的Code First的方式来读取数据库时的Validation failed for one or more entities. See &#39;EntityValidationErrors&#39; property for more details.

今天在做一个小网站的时候遇到很多问题唉,我还是个菜鸟,懂的也不多,今天一个表单的提交按钮用不了,都弄了几个小时唉.不过最后还是搞定了,还有浏览器有开发人员选项,不然我都不知道我还要继续排查多久哦,今天晚上在把数据存入数据库的又出现了问题.我使用的是Entity Framework的Code First模式来访问数据库的.对于数据的验证我在数据模型上加了数据注解.当然在前台也引入了一些JS这样就可以再不把数据提交到服务器时完成验证功能.在后台保存用户提交的数据的时候,我们要用到ModelStatu

ASP.NET MVC中使用EF框架

在公司中一直在使用oracle数据库,然后天天都是手写T-SQL,用的要么是ado.net封装好的操作数据库的方法,要么用的是oracle原生的一些操作数据库的方法,以前也自己了解过一些微软ORM的东西,更是听说过Entity Framework的大名,今天手动操作了一下, 想起了webcast里苏鹏说的那句话,微软把东西做的这么简单,基本不用谢什么代码,按几个按钮或者配置几下就生成了一堆东西,这究竟是帮助了程序员还是害了程序员.感叹没用,还是记录下动手的一些过程. 首先新建了一个mvc4的应用

.NET Core2.0 MVC中使用EF访问数据

使用环境:Win7+VS2017 一.新建一个.NET Core2.0的MVC项目 二.使用Nuget添加EF的依赖 输入命令:Install-Package Microsoft.EntityFrameworkCore.SqlServer 三.如果是使用db first,需要根据数据库生成model,就还需要使用命令添加两个依赖 Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.Entity

MVC中使用EF:排序,过滤,分页

原文链接:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

6.在MVC中使用泛型仓储模式和依赖注入实现增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-dep/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

5.在MVC中使用泛型仓储模式和工作单元来进行增删查改

原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-operations-using-the-generic-repository-pattern-and-uni/ 系列目录: Relationship in Entity Framework Using Code First Approach With Fluent API[[使用EF Code-First方式和Fluent API来探讨EF中的关系]] Code First Mig

解决MVC中Model上的特性在EF框架刷新时清空的问题

MVC中关于前端数据的效验一般都是通过在Model中相关的类上打上特性来实现. 但是在我们数据库发生改变,EF框架需要刷新时会把我们在Model上的特性全部清除,这样的话,我们前端的验证就会失效. 因此,我觉得可以使用Partial-局部类(伙伴类) 的方式来实现EF框架刷新特性不清除的功能. 在Model文件夹当中我们先建立一个类,一般命名为“你的类名”+Partial,因为如果直接建立同名类会提示已存在,要求覆盖,或者在别的地方建同名类.(需要在class前面加上Partial 关键字) 然

使用Json.Net解决MVC中各种json操作

最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能.NewtonSoft.json也就是Json.Net性能虽然不是最好的,但是是比较靠前的,其功能是最强大的,包含各种json操作模式.现在来看看mvc中的替换1, Controller.Json方法这个方法最容易出现循环引用,比如EF查出一个一对多集合想序列化,结果a引用了子表b,b中还引用了a,导