如何構建和使用EF,用linqToSql實現對數據的操作


   最近一直在用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 功能很強大,這里就不舉出來了,相信大家這篇文章對大家有幫助!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM