您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页EFCodeFirst两表连接、显示、分页、查询、下拉框

EFCodeFirst两表连接、显示、分页、查询、下拉框

来源:爱够旅游网
EFCodeFirst两表连接、显⽰、分页、查询、下拉框

⼀、什么是⽇志?

1、⽂本类型的-将当前时间+⽅法名称+参数+错误信息 打印到⽂本当中2、数据表类的-将当前时间+⽅法名称+参数+错误信息 添加到数据表当中3、当前⽅法名称+参数+时间4、作⽤:

⼆、怎么让两表连接

1、在外键字段上⽅添加外键关键字 语法: [ForeignKey(\"表名\")]

2、在外间字段下⽅添加⼀个导航属性例如 “可以根据当前学⽣ 导航到所在的班级” 语法:“修饰符 表名 ⾃定义名称 {get;set;}”

三、EF 显⽰

1.⾸先实例化上下⽂

//实例化上下⽂

StudentDbContext db = new StudentDbContext();//例⼦

2.定义⽅法 返回值类型是LIst<>集合,

public List<类名> ⽅法名称()

1).单表显⽰

public List Show() {

return db.Students.ToList();//转换成list集合 }

2).两表以上显⽰

IQueryable query = db.Students.Include(\"NClass\");//例⼦ IQueryable<>接⼝ 继承IEnumerable接⼝ 返回枚举类型 Include 类似 join

四、实现查询1.⾸先传⼊参数

例⼦:

public List PageShow(string sname ,int? nid)参数类型和数据表⾥的类型保持⼀致

数值类型 可以赋予默认值也可以默认为空

2.拼接条件查询语句

例⼦:

//判断学⽣姓名⾮空

if (!string.IsNullOrEmpty(sname)) {

//Contains 包含

query = query.Where(u => u.SName.Contains(sname)); }

//判断班级 if (nid!=null) {

query = query.Where(u => u.NId == nid); }

五、实现分页效果1.⾸先参数

例⼦:

public List PageShow(out int totalcount, out int totalpage,int pageindex=1,int pagesize = 3) 输出参数

totalcount 总条数 totalpage 总页数

pageindex 当前页 赋予初始值 pagesize 页⼤⼩ 赋予初始值

2.获取总条数和总页数

例⼦:

totalcount = query.Count(); //总条数

totalpage = Convert.ToInt32(Math.Ceiling(totalcount * 1.0 / pagesize)); //总页数

获取总页数的公⽰: (总条数*1.0/页⼤⼩) 在C#⾥整数除以整数得到的还是整数,所以乘以个⼩数 注:获取到的总条数是⼩数要向上取整并转换成整数类型

3.拼接分页语句

例⼦:

return query.OrderBy(u => u.SId).Skip((pageindex - 1) *pagesize).Take(pagesize).ToList();OrderBy 随意字段进⾏排序,建议⽤IDSkip 跳过多少条Take 显⽰多少条

六、下拉框

例⼦:

public List LoadClass() {

return db.NClass.ToList();//返回list集合 }

返回类型也是List<>集合,直接ToList()查询显⽰全部字段

七、显⽰+分页+查询控制器

例⼦:

public ActionResult PageShowStudent(string sname,int? nid,int pageindex =1,int pagesize =3) {

int totalcount; int totalpage;

var query = dal.PageShow(out totalcount, out totalpage,sname,nid,pageindex, pagesize); var list = new StaticPagedList(query, pageindex, pagesize, totalcount); return View(list); }

参数和后台参数⼀样定义输出参数并传⼊⽅法

使⽤PagedList控件进⾏分页,PagedList控件⾃动计算总页数不⽤传⼊总页数使⽤PagedList控件⼀定要引⽤命名空间using PagedList;

using PagedList.Mvc;

注:参数赋予初始值的⼀定要在未赋初始值的后⾯

六、下拉框控制器

例⼦:

public void loadClass() {

ViewBag.nid = new SelectList(dal.LoadClass(), \"NId\ }

使⽤ViewBag传值,只需传⼊ID和名称

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务