设为首页 加入收藏

TOP

[开源]Entity Framework 6 Repository 一种实现方式(四)
2019-09-17 19:08:24 】 浏览:116
Tags:开源 Entity Framework Repository 实现 方式
Set<T>().Any() : Set<T>().Any(predicate); } /// <summary> /// 根据id获取记录 /// </summary> /// <returns>记录</returns> /// <param name="id">id.</param> public T GetByKeyId<T>(object id) where T : ModelBase { ValidateOperator.Begin().NotNull(id, "Id"); return Set<T>().Find(id); } /// <summary> /// 条件获取记录集合 /// </summary> /// <returns>集合</returns> /// <param name="predicate">筛选条件.</param> public List<T> GetList<T>(Expression<Func<T, bool>> predicate = null) where T : ModelBase { IQueryable<T> query = Set<T>(); if (predicate != null) query = query.Where(predicate); return query.ToList(); } /// <summary> /// 条件获取记录第一条或者默认 /// </summary> /// <returns>记录</returns> /// <param name="predicate">筛选条件.</param> public T GetFirstOrDefault<T>(Expression<Func<T, bool>> predicate = null) where T : ModelBase { IQueryable<T> query = Set<T>(); if (predicate != null) return query.FirstOrDefault(predicate); return query.FirstOrDefault(); } /// <summary> /// 条件查询 /// </summary> /// <returns>IQueryable</returns> /// <param name="predicate">筛选条件.</param> public IQueryable<T> Query<T>(Expression<Func<T, bool>> predicate = null) where T : ModelBase { IQueryable<T> query = Set<T>(); if (predicate != null) query = query.Where(predicate); return query; } /// <summary> /// 显式回滚事务,仅在显式开启事务后有用 /// </summary> public void Rollback() { if (TransactionEnabled) Database.CurrentTransaction.Rollback(); } /// <summary> /// 执行Sql 脚本查询 /// </summary> /// <param name="sql">Sql语句</param> /// <param name="parameters">参数</param> /// <returns>集合</returns> public IEnumerable<T> SqlQuery<T>(string sql, IDbDataParameter[] parameters) { ValidateOperator.Begin() .NotNullOrEmpty(sql, "Sql语句"); // ReSharper disable once CoVariantArrayConversion return Database.SqlQuery<T>(sql, parameters); } /// <summary> /// 根据记录 /// </summary> /// <returns>操作是否成功.</returns> /// <param name="entity">实体类记录.</param> public bool Update<T>(T entity) where T : ModelBase { ValidateOperator.Begin().NotNull(entity, "需要更新的数据记录"); bool result; try { var set = Set<T>(); set.Attach(entity); Entry(entity).State = EntityState.Modified; result = SaveChanges() > 0; } catch (DbEntityValidationException dbEx) { throw new Exception(dbEx.GetFullErrorText(), dbEx); } return result; } #endregion Methods }

单元测试

    [TestClass()]
    public class SampleServiceTests
    {
        private IKernel _kernel;
        private ISampleService _sampleService;
        private readonly Guid _testId = "2F6D3C43-C2C7-4398-AD2B-ED5E82D79999".ToGuidOrDefault(Guid.Empty);
        private const string TestName = "EFSample";
 
        [TestInitialize]
        public void SetUp()
        {
            _kernel = new StandardKernel(new ServiceModule());
            Assert.IsNotNull(_kernel);
 
            _sampleS
首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇9.10 翻译系列:EF数据注解特性之.. 下一篇<<C语言--神奇的指针>&g..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目