设为首页 加入收藏

TOP

[开源]Entity Framework 6 Repository 一种实现方式(二)
2019-09-17 19:08:24 】 浏览:120
Tags:开源 Entity Framework Repository 实现 方式
gt; /// <param name="dbConnection">dbConnection</param> protected EfDbContextBase(DbConnection dbConnection) : base(dbConnection, true) { Configuration.LazyLoadingEnabled = false; //将不会查询到从表的数据,只会执行一次查询,可以使用 Inculde 进行手动加载; Configuration.ProxyCreationEnabled = false; Configuration.AutoDetectChangesEnabled = false; } #endregion Constructors #region Fields /// <summary> /// 获取 是否开启事务提交 /// </summary> public virtual bool TransactionEnabled => Database.CurrentTransaction != null; #endregion Fields #region Methods /// <summary> /// 显式开启数据上下文事务 /// </summary> /// <param name="isolationLevel">指定连接的事务锁定行为</param> public void BeginTransaction(IsolationLevel isolationLevel = IsolationLevel.Unspecified) { if (!TransactionEnabled) Database.BeginTransaction(isolationLevel); } /// <summary> /// 提交当前上下文的事务更改 /// </summary> /// <exception cref="DataAccessException">提交数据更新时发生异常:" + msg</exception> public void Commit() { if (TransactionEnabled) try { Database.CurrentTransaction.Commit(); } catch (DbUpdateException ex) { if (ex.InnerException?.InnerException is SqlException sqlEx) { var msg = DataBaseHelper.GetSqlExceptionMessage(sqlEx.Number); throw new DataAccessException("提交数据更新时发生异常:" + msg, sqlEx); } throw; } } /// <summary> /// 创建记录 /// </summary> /// <returns>操作是否成功</returns> /// <param name="entity">需要操作的实体类.</param> public bool Create<T>(T entity) where T : ModelBase { ValidateOperator.Begin().NotNull(entity, "需要创建数据记录"); bool result; try { Entry(entity).State = EntityState.Added; result = SaveChanges() > 0; } catch (DbEntityValidationException dbEx) { throw new Exception(dbEx.GetFullErrorText(), dbEx); } return result; } /// <summary> /// 创建记录集合 /// </summary> /// <returns>操作是否成功.</returns> /// <param name="entities">实体类集合.</param> public bool Create<T>(IEnumerable<T> entities) where T : ModelBase { ValidateOperator.Begin().NotNull(entities, "需要创建数据集合"); bool result; try { foreach (var entity in entities) Entry(entity).State = EntityState.Added; result = SaveChanges() > 0; } catch (DbEntityValidationException dbEx) { throw new Exception(dbEx.GetFullErrorText(), dbEx); } return result; } /// <summary> /// 删除记录 /// </summary> /// <returns>操作是否成功</returns> /// <param name="entity">需要操作的实体类.</param> public bool Delete<T>(T entity) where T : ModelBase { ValidateOperator.Begin().NotNull(entity, "需要删除的数据记录"); bool result; try { Entry(entity).State = EntityState.Deleted; result = SaveChanges() > 0; } catch (DbEntityValidationException dbEx) { throw new Exception(dbEx.GetFullErrorText(), dbEx); } return result; } /// <summary> /// 条件判断是否存在 /// </summary> /// <returns>是否存在</returns> /// <param name="predicate">判断条件委托</param> public bool Exist<T>(Expression<Func<T, bool>> predicate = null) where T : ModelBase { return predicate == null ?
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇9.10 翻译系列:EF数据注解特性之.. 下一篇<<C语言--神奇的指针>&g..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目