1. 程式人生 > >MVC5+EF6之EF CRUD

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;