如何构建和使用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 功能很强大,这里就不举出来了,相信大家这篇文章对大家有帮助!

 

 

 

posted on 2012-03-21 15:28  杭州湛亚技术支持  阅读(1778)  评论(5编辑  收藏  举报