MVC5+EF6之EF CRUD

 一、数据查询
EF数据查询用LINQ实现(LINQ to Entities),通常有表达式和函数式两种方式。最常用的是函数式方式。
定义好了的context:
private AccountContext db=new AccountContext();
基本查询:
var users=from u in db.SysUsers
select u;
users=db.SysUsers;
条件查询:
var users=from u in db.SysUsers
where u.UserName=="Tom"(查询条件)
select u;
users=db.SysUsers.Where(u=>u.UserName=="Tom");(=>前面的是参数,后面的是函数体。)
排行和分页:
users = (from u in db.SysUsers
    orderby u.UserName
    select u).Skip(0).Take(5); //表达式方式
    users = db.SysUsers.OrderBy(u => u.UserName).Skip(0).Take(5);
聚合查询:
        var num = db.SysUsers.Count();
    var minId  = db.SysUsers.Min(u => u.ID);(最小值)
              var maxId = db.SysUsers.Max(u => u.ID);(最大值)
连接查询:
        var users = from ur in db. SysUserRoles
     join u in db. SysUsers
     on ur.SysUserID equals u.ID
       select ur;
连接查询返回的结果是一个类型为SysUserRoles的集合
如果有多张表需要连接,需要用到navigation property(导航属性)来实现
二、数据库的更新、增加以及删除
1.创建视图
打开 AccountController,模仿着Index,添加Delete(删除)、Edit(更新)、Create(创建)、Details(查询详细信息)
然后写出所需的方法来实现各个功能
2.修改视图
(1)每个视图顶部都必须增加强类型声明
(2)添加每个视图需要现实的数据(需要添加一个Table)
(3)Index.cshtml中开头需要增加Create链接,table每条记录后面增加Edit,Delete链接。
eg:添加Edit链接( @Html.ActionLink("Edit", "Edit", new { id = item.ID }) )
3.HtmlHelper
HtmlHelper是可以通过View的Html属性调用的方法(@Html.xxx), 可以类比成原来WebForm的服务器端控件。
DisplayNameFor (model=>model.xxx) 生成纯文本,显示xxx列名
DisplayFor (model=>model.xxx) 生成纯文本,显示xxx列的内容
LableFor  生成一个Lable标签
EditorFor 生成一个text类型的input
PasswordFor 类似于EditorFor, 隐藏文本内容
ActionLink 生成一个<a>标签
BeginForm  生成一个表单
三、Repository Pattern(仓库模式)
Repository Pattern是一种设计模式
具体的做法:先定义Interface, 通过定义接口确定数据访问类的功能需求, 接着实现该接口。以对SysUser这张表的操作为例。
1.建一个文件夹 Repositories,
2.在文件夹中新建一个接口IsysUserRepository
3.同样文件夹下新建类(SysUserRepository),继承接口,实现功能。
通过IsysUserRepository接口对象引用SysUserRepository类的实例来调用:
  ISysUserRepository ur=new SysUserRepository();
   var user=ur.xxx; 

原文地址:https://www.cnblogs.com/xue-er/p/7698930.html