zoukankan      html  css  js  c++  java
  • linq to sql 三层架构中使用CRUD操作

     /// <summary>
        /// 数据层
        /// </summary>
        public partial class GasBottles : IGasBottles
        {
            #region IGasBottles 成员
    
            public Model.GasBottles GetModel(int gasBottlesID)
            {
                var db = DbContext.LGSCMSDataContext;
                try
                {
                    var gs = db.GasBottles.FirstOrDefault(s => s.ID == gasBottlesID);
                    if (gs != null)
                    {
                        Model.GasBottles gasBottlesInfo = gs.ConvertToEntity<Model.GasBottles>();
                        return gasBottlesInfo;
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
    
                return null;
            }
    
            public bool Add(Model.GasBottles gasBottles)
            {
                bool flag = false;
                try
                {
                    var db = DbContext.LGSCMSDataContext;
                    DataLinqEntity.GasBottles gs = gasBottles.ConvertToEntity<DataLinqEntity.GasBottles>();
                    db.GasBottles.InsertOnSubmit(gs);
                    db.SubmitChanges();
                    flag = true;
                }
                catch (Exception ex)
                {
                    flag = false;
                    throw ex;
                }
                return flag;
            }
    
            public bool Update(Model.GasBottles gasBottles)
            {
                bool flag = false;
                var changedData = gasBottles.ConvertToEntity<DataLinqEntity.GasBottles>();
                var db = DbContext.LGSCMSDataContext;
                try
                {
                    var updateTarget = db.GasBottles.SingleOrDefault(i => i.ID == gasBottles.ID);
                    //CopyProperties(ref updateTarget, changedData);
                    changedData.GetType().GetProperties()
                    .Where(p => p.GetCustomAttributes(typeof(ColumnAttribute), false).Any()).ToList()
                    .ForEach(p => p.SetValue(updateTarget, p.GetValue(changedData, null), null));
                    db.SubmitChanges();
                    flag = true;
                }
                catch (Exception ex)
                {
                    flag = false;
                    throw ex;
                }
                return flag;
            }
    
            public bool Delete(int gasBottlesID)
            {
                bool flag = false;
                var db = DbContext.LGSCMSDataContext;
                try
                {
                    var gs = db.GasBottles.FirstOrDefault(s => s.ID == gasBottlesID);
                    if (gs != null)
                    {
                        gs.deleteflag = 1;
                        db.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    flag = false;
                    throw ex;
                }
    
                return flag;
            }
    
            /// <summary>
            /// 新增或更新
            /// </summary>
            /// <param name="gasBottles"></param>
            /// <param name="gasBottlesID"></param>
            /// <returns></returns>
            public bool Save(Model.GasBottles gasBottles, out int gasBottlesID)
            {
                bool flag = false;
                var changedData = gasBottles.ConvertToEntity<DataLinqEntity.GasBottles>();
                var db = DbContext.LGSCMSDataContext;
                try
                {
                    //=>新增
                    var updateTarget = db.GasBottles.SingleOrDefault(i => i.ID == gasBottles.ID);
                    if (updateTarget == null)
                    {
                        db.GasBottles.InsertOnSubmit(changedData);
                        db.SubmitChanges();
                        gasBottlesID = changedData.ID.ToInt();
                        flag = true;
                    }
                    //=>修改
                    else
                    {
                        //CopyProperties(ref updateTarget, changedData);
                        changedData.GetType().GetProperties()
                        .Where(p => p.GetCustomAttributes(typeof(ColumnAttribute), false).Any()).ToList()
                        .ForEach(p => p.SetValue(updateTarget, p.GetValue(changedData, null), null));
                        db.SubmitChanges();
                        gasBottlesID = updateTarget.ID.ToInt();
                        flag = true;
                    }
                }
                catch (Exception ex)
                {
                    flag = false;
                    throw ex;
                }
                return flag;
            }
    
            #endregion
        }
    View Code
            private void CopyProperties<T>(ref T Target, T Source)
            {
                foreach (PropertyInfo PI in Target.GetType().GetProperties())
                {
                    if (PI.CanWrite && PI.CanRead)
                    {
                        PI.SetValue(Target, PI.GetValue(Source, null), null);
                    }
                }
            }
            #endregion
    View Code

    DbContext

     public class DbContext
        {
            /// <summary>
            /// 
            /// </summary>
            private readonly static string connectionString = SqlHelper.SQLConnString;
    
            #region [=>Winfrom方式]
            //private static WLMQGasBottlesDataContext _WLMQGasBottlesDataContext;
            ///// <summary>
            ///// 
            ///// </summary>
            //public static WLMQGasBottlesDataContext WLMQGasBottlesDataContext
            //{
            //    get
            //    {
            //        return _WLMQGasBottlesDataContext ?? new WLMQGasBottlesDataContext(connectionString);
            //    }
            //}
            #endregion
    
            #region [=>Web方式]
            public static WLMQGasBottlesDataContext WLMQGasBottlesDataContext
            {
                get
                {
                    WLMQGasBottlesDataContext context = HttpContext.Current.Items["WLMQGasBottlesDataContext"] as WLMQGasBottlesDataContext;
                    if (context == null)
                    {
                        context = new WLMQGasBottlesDataContext(connectionString);
                        HttpContext.Current.Items["WLMQGasBottlesDataContext"] = context;
                    }
                    return context;
                }
            }
    
            public static LGSCMSDataContext LGSCMSDataContext
            {
                get
                {
                    LGSCMSDataContext context = HttpContext.Current.Items["LGSCMSDataContext"] as LGSCMSDataContext;
                    if (context == null)
                    {
                        context = new LGSCMSDataContext(connectionString);
                        HttpContext.Current.Items["LGSCMSDataContext"] = context;
                    }
                    return context;
                }
            }
            #endregion
        }
    View Code
  • 相关阅读:
    Python-append()/extend()
    HTML标签
    字符实体
    css选择器
    边框属性
    背景属性
    文本属性
    字体属性
    给标签起名字
    JS数据类型
  • 原文地址:https://www.cnblogs.com/51net/p/4097266.html
Copyright © 2011-2022 走看看