最近一直在用EF( Entity FrameWork)數據模型框架。用EF 省去了對sql語句的操作
而是直接通過EF生成數據模型 對數據實體的操作,這里當然就必須用到linq,對於linq 大家一定很熟了,這里就沒必要
多說。。那么我們是如何構建EF的呢?
下面給大家貼圖比較好理解
先建一個解決方案 ,然后添加一個EF實體對象模型:

選則 ado.net entity data model 這一項。

然后選擇第一項,注意一般都選第一項,第二項是一個空的。繼續下一步。

然后連接服務器地址,選擇數據庫。點擊ok。然后下一步

選擇需要的table ,view 和存儲過程。
然后點擊finish

這樣就將EF建好了。對應的數據庫,表都映射到EF實體模型中了。。
下面,看我們應該如何用EF 而不是寫繁雜的Sql語句了。
一.1先建立數據庫中對應的實體類。
如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
namespace EF.Model
{
[DataContract]
[Serializable]
public class RoleModel
{
public RoleModel()
{}
#region 屬性
/// <summary>
/// 角色編號
/// </summary>
[DataMember]
public int RoleID
{
get;
set;
}
/// <summary>
/// 名稱
/// </summary>
[DataMember]
public string Name
{
get;
set;
}
/// <summary>
/// 角色描述
/// </summary>
[DataMember]
public string Description
{
get;
set;
}
/// <summary>
/// 2的指數
/// </summary>
[DataMember]
public int Code
{
get;
set;
}
/// <summary>
///
/// </summary>
[DataMember]
public bool? IsDelete
{
get;
set;
}
/// <summary>
/// 創建時間
/// </summary>
[DataMember]
public DateTime? CreateTime
{
get;
set;
}
/// <summary>
/// 更新時間
/// </summary>
[DataMember]
public DateTime? UpdateTime
{
get;
set;
}
#endregion
}
}
實體類建好了 ,我們最想看到的就該出來了。
下面是如何用EF 對數據增刪查改的操作:
1.對數據的讀取操作
public RoleModel GetRole(int roleID)
{
RoleModel model = null;
using(Entities db = new Entities())
{
try{
Role role = db.Role.FirstOrDefault(item => item.RoleID == roleID && item.IsDelete == false);
if(role != null)
{
model = new RoleModel();
model.RoleID = role.RoleID;
model.Name = role.Name;
model.Description = role.Description;
model.Code = role.Code;
model.IsDelete = role.IsDelete;
model.CreateTime = role.CreateTime;
model.UpdateTime = role.UpdateTime;
}
}
catch (Exception ex)
{
throw new Exception(ex.message);
}
}
return model;
}
2. 添加
public ResultEnum AddRole(RoleModel model,out int roleID)
{
ResultEnum result = ResultEnum.Failure;
roleID=0;
using(MEntities db = new Entities())
{
try{
Role role = new Role();
role.Name = model.Name;
role.Description = model.Description;
role.Code = model.Code;
role.IsDelete = model.IsDelete;
role.CreateTime = model.CreateTime;
role.UpdateTime = model.UpdateTime;
db.AddToRole(role);
if(db.SaveChanges()>0)
{
roleID=role.RoleID;
result = ResultEnum.Success;
}
}
catch (Exception ex)
{
throw new Exception(ex.message);
}
return result;
}
}
3.更新數據
public ResultEnum UpdateRole(RoleModel model)
{
ResultEnum result = ResultEnum.Failure;
using(Entities db = new Entities())
{
try{
Role role = db.Role.FirstOrDefault(item=>item.RoleID == model.RoleID);
if(role != null)
{
role.Name = model.Name;
role.Description = model.Description;
role.Code = model.Code;
role.IsDelete = model.IsDelete;
role.CreateTime = model.CreateTime;
role.UpdateTime = model.UpdateTime;
if(db.SaveChanges()>0)
{
result = ResultEnum.Success;
}
}
}
catch (Exception ex)
{
result = ResultEnum.Exception;
}
}
return result;
}
4.刪除數據
public ResultEnum DelRole(int roleID)
{
ResultEnum result = ResultEnum.Failure;
using (Entities db = new Entities())
{
try
{
Role role = db.Role.FirstOrDefault(item => item.RoleID == roleID);
if (role != null)
{
db.DeleteObject(Role );
if (db.SaveChanges() > 0)
{
result = ResultEnum.Success;
}
}
}
catch (Exception ex)
{
result = ResultEnum.Exception;
}
}
return result;
}
利用EF 多數據的增刪改查 十分方便,不用我們 每天都用繁雜的sql語句,拼寫sql語句也容易出現錯誤。
EF 功能很強大,這里就不舉出來了,相信大家這篇文章對大家有幫助!
