ASP.Net EF框架

 

模型

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

namespace EFA.api.Models
{
    [Table("Course")]
    public class Course
    {
        [Key]
        public int Id { get; set; }
        public string CName { get; set; }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace EFA.api.Models
{
    [Table("Student")]
    public class Student
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public int Score { get; set; }
        [ForeignKey("CourStu")]
        public int CId { get; set; }
        public Course CourStu { get; set; }


    }
}
View Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace EFA.api.Models
{
    public class PageModel
    {
        public List<Student> list { get; set; }
        public int totalCount { get; set; }
        public int totalPage { get; set; }
        public int currentpage { get; set; }

    }
}
View Code

倒层

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace EFA.api.DAL
{
    public class StuDal<T> where T:class ,new()
    {
        MyContext db = new MyContext();
        /// <summary>
        /// 显示
        /// </summary>
        /// <returns></returns>
        public DbSet<T> Show()
        {
            return db.Set<T>();
        }
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public int Add(T t)
        {
            db.Set<T>().Add(t);
            return db.SaveChanges();
        }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public int Del(int id)
        {
            var obj = db.Set<T>().Find(id);
            db.Set<T>().Remove(obj);
            return db.SaveChanges();
        }
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public int Modify(T t)
        {
            db.Set<T>().Attach(t);
            db.Entry<T>(t).State = EntityState.Modified;
            return db.SaveChanges();
        }
    }
}
View Code
namespace EFA.api.DAL
{
    using EFA.api.Models;
    using System;
    using System.Data.Entity;
    using System.Linq;

    public class MyContext : DbContext
    {
        //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
        //使用“MyContext”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
        //“EFA.api.DAL.MyContext”数据库。
        // 
        //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“MyContext”
        //连接字符串。
        public MyContext()
            : base("name=MyContext")
        {
        }

        //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First  模型
        //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109

         public  DbSet<Student> Students { get; set; }
        public DbSet<Course> Courses { get; set; }

public page GetUserInfos() { SqlParameter[] p = new SqlParameter[] { new SqlParameter("Pagesize",2), new SqlParameter("pageindex",1), new SqlParameter("where","查询的条件"), new SqlParameter("result",SqlDbType.NVarChar) }; p[3].Direction = System.Data.ParameterDirection.Output; page pa = new page(); pa.UserInfos = db.GetT<UserInfo>("ming", p); return pa; } } public class page { public string result { get; set; } public List<UserInfo> UserInfos { get; set; } }
//public class MyEntity //{ // public int Id { get; set; } // public string Name { get; set; } //} }

控制器

 

using EFA.api.DAL;
using EFA.api.Models;
using Newtonsoft.Json;
using OAWorkFlowUI.xls;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace EFA.api.Controllers
{
    public class DefaultController : ApiController
    {
        public StuDal<Student> stuDal = new StuDal<Student>();
        public StuDal<Course> couDal = new StuDal<Course>();
        [HttpGet]
        [Route("api/QueryS")]
        public PageModel GetStu(int pagesize,int currentpage,string name="")
        {
            if(currentpage<1)
            {
                currentpage = 1;
            }
            var list = stuDal.Show().Include("CourStu").ToList();
            if(!string.IsNullOrEmpty(name))
            {
                list = list.Where(x => x.Name.Contains(name)).ToList();
            }
            var count = list.Count();
            int page;
            if(count%pagesize==0)
            {
                page = count / pagesize;
            }
            else
            {
                page = count / pagesize + 1;
            }
            if(currentpage>page)
            {
                currentpage = page;
            }
            list = list.Skip((currentpage - 1) * pagesize).Take(pagesize).ToList();
            var m = new PageModel();
            m.list = list;
            m.currentpage = currentpage;
            m.totalCount = count;
            m.totalPage = page;
            return m;
        }
          /// <summary>
        ///批量 删除学生考试信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpGet]
        [Route("api/DelS")]
        public int del(string id)
        {
            string[] a = id.Split(',');
            int b = 0;
            for (int i = 0; i < a.Length; i++)
            {
                try
                {
                    b += entdal.del(int.Parse(a[i]));
                }
                catch (Exception)
                {

                    throw;
                }
            }
            return b;
        }

        /// <summary>
        /// 删除学生考试信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [HttpGet]
        [Route("api/DelS")]
        public int Del(int id)
        {
            return stuDal.Del(id);
        }
        /// <summary>
        /// 添加学生考试信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/AddS")]
        public int AddStu(Student model)
        {
            return stuDal.Add(model);
        }

        /// <summary>
        /// 导出
        /// </summary>
        [HttpGet]
        [Route("api/Gete")]
        public void GetExcel()
        {

                List<Student> list = stuDal.Show().ToList();
                string json = JsonConvert.SerializeObject(list);
                DataTable dt = JsonConvert.DeserializeObject<DataTable>(json);
                ExcelHelper.ExportByWeb(dt, "学生Excel", "StuExcle.xls");
        }
        /// <summary>
        /// 绑定下拉
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Route("api/GetC")]
        public List<Course> GetCoure()
        {
            var list = couDal.Show().ToList();
            return list;
        }
        /// <summary>
        /// 修改学生考试信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/Modify")]
        public int ModifyU(Student model)
        {
            return stuDal.Modify(model);
        }
        /// <summary>
        /// 查找符合的学生信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpGet]
        [Route("api/GetId")]
        public List<Student> SelectId(int id)
        {
            List<Student> list = stuDal.Show().Where(x => x.Id.Equals(id)).ToList();
            return list;
        }
        /// <summary>
        /// 修改单一字段(状态)
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpGet]
        [Route("api/ModifySt")]
        public int ModifyState(int id)
        {
            var obj = stuDal.Show().Find(id);
            obj.Age = 1;
            return stuDal.Modify(obj);
        }
    }
}
View Code

 

page /peɪdʒ/基本翻译n. 页;记录;大事件,时期;历史篇章;男侍者;(美国议员的)青年助理vt. 给…标页码vi. 翻书页,浏览n. (Page)人名;(西)帕赫;(英)佩奇;(意)帕杰;(法)帕日网络释义Page:蓓姬 ; 裴吉 ; 希腊相关查询PagePAGE

 

posted @ 2020-07-09 20:54  我是一只快乐的码农  阅读(575)  评论(1编辑  收藏  举报