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

  • 相关阅读:
    完全平方数、樱花两个简单数论题
    判断组合数的奇偶性
    字符翻转
    完全平方数2
    均衡操作
    最遥远的距离
    均衡操作2
    csp2021阅读程序欧拉筛求1到N之间所有数字的约数个数与约数之和
    实验二 OpenSSL API使用
    改进ls的实现(课下作业)
  • 原文地址:https://www.cnblogs.com/ylgbd/p/2409984.html
Copyright © 2020-2023  润新知