zoukankan      html  css  js  c++  java
  • Repository

    namespace MyRepository.Domain.Infrastructure
    {
        public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
        {
            protected BookStoreDbContext dbContext;
            protected DbSet<TEntity> dbSet;
    
            public Repository(BookStoreDbContext dbContext)
            {
                this.dbContext = dbContext;
                this.dbSet = dbContext.Set<TEntity>();
            }
            public void Insert(TEntity entity)
            {
                dbSet.Add(entity);
            }
            public void Update(TEntity entity)
            {
                dbSet.Attach(entity);
                dbContext.Entry(entity).State = EntityState.Modified;
            }
            public void Delete(TEntity entity)
            {
                if (dbContext.Entry(entity).State == EntityState.Detached)
                {
                    dbSet.Attach(entity);
                }
                dbSet.Remove(entity);
            }
        }
    }

    /// <summary>
        /// 用于对数据的保存操作
        /// </summary>
        public class UnitOfWork : IUnitOfWork
        {
            private  readonly BookStoreDbContext _context;
            public DbContext Context
            {
                get { return _context; }
            }

            public event EventHandler Disposed;

            public bool IsDisposed { get; private set; }
            public void Dispose()
            {
                Dispose(true);
            }
            public virtual void Dispose(bool disposing)
            {
                lock (this)
                {
                    if (disposing && !IsDisposed)
                    {
                        _context.Dispose();
                        var evt = Disposed;
                        if (evt != null) evt(this, EventArgs.Empty);
                        Disposed = null;
                        IsDisposed = true;
                        GC.SuppressFinalize(this);
                    }
                }
            }

            public UnitOfWork(BookStoreDbContext context)
            {
                _context = context;
            }

            public void Save()
            {
                _context.SaveChanges();
            }

            ~UnitOfWork()
            {
                Dispose(false);
            }
        }

     http://www.cnblogs.com/zhongxinWang/archive/2012/02/22/2360283.html

  • 相关阅读:
    CentOS6找回root密码
    Python3——装饰器及应用(这个属于详细的)
    python3 类的相关内容
    python--- 解释‘yield’和‘Generators(生成器)
    Python 基本类型:元组,列表,字典,字符串,集合 梳理总结
    python3 推导式大总结
    Python3 的描述符--完整例子详细解释
    类 Class 对象、定义、方法
    Python3基础 __repr__ 类的实例对象的名字 可以打印文字(2)
    Python3基础 __repr__ 类的实例对象的名字 可以打印文字(1)
  • 原文地址:https://www.cnblogs.com/shiningrise/p/4128482.html
Copyright © 2011-2022 走看看