?一、數據查詢
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;?
?