EF框架有三種基本的方式:DB First,Model First,Code First。這里簡單的說一下DB First,適合沒有基礎的同學照着做,學習基礎的東西。
DatabaseFirst就是圍繞數據庫為中心的開發方式,使用這種模式我們必須要先設計和創建數據庫,然后使用VS在已有數據庫的基礎上創建ADO.NET實體數據模型,之后就可以在編程的過程中使用EF訪問和操作數據庫里的數據了
1、先在數據庫中創建幾張表
2、在vs中創建一個類庫項目,添加ado.net實體數據模型
點完成后,生成如下edmx
在DBFirst模式下,是不需要對edmx文件做修改的,讓系統自動生成就好了
如果現在要對表結構或者列名進行修改,那么先在數據庫上修改好了,然后在edmx中將相應的實體刪除,選擇從數據庫更新模型 ,再將刪除的表添加回來
同樣的,添加表也是如此,這種情況下,即使原來數據庫里面有數據也不會有什么影響的
3、在這個項目中做一個簡單的增刪改查,在class1類中添加如下代碼
public class Class1 { modelEntities mo = null; public Class1() { mo = new modelEntities(); } public IList<Role> getRoleSet() { //使用Lambda表達式查詢數據 IList<Role> RoleList = mo.Role.Where(o => o.RoleName != "").ToList(); return RoleList; } public int AddRoleSet(Role r) { try { mo.Role.Add(r); mo.SaveChanges();//對數據庫的修改一定要添加這條語句 } catch (Exception e) { return 0; } return 1; } public int ModifyRoleSet(Role r) { IList<Role> rlist = mo.Role.Where(o => o.Id == r.Id).ToList(); Role rn = rlist.ElementAtOrDefault(0); if (null != rn) { rn = r; return mo.SaveChanges(); } return 0; } public bool DelRoleSet(Role r) { try { mo.Role.Remove(r); mo.SaveChanges(); } catch (Exception e) { return false; } return true; } }
創建一個控制台項目,將數據庫鏈接字符串復制到配置文件中,然后直接調用class1中的方法就可以實現簡單的增刪改查了
4、與modelfirst相比,dbfirst在項目開發中更容易,至少,在數據庫有數據的情況下,添加新的實體要更簡單,也不用擔心會因為誤操作而導致數據丟失。
EF模式下,也可以直接使用sql語句來實現增刪改查,這里就不討論了