使用t4模板生成数据访问层

时间:2016-09-21 10:26:42

标签: c# .net t4 data-access-layer

我正在寻找一些帮助或指针,解释更多关于使用T4模板生成整个数据访问层的信息。例如,所有INSERT等语句和实现它的C#方法。

1 个答案:

答案 0 :(得分:1)

您不应该这样做,而是尝试使用Generic Repository模式,最终将使用Generics的单个实现结束,可以用于模型中的任何类型。

public interface IRepository<T, K> where T : class
    {
        T Add(T item);
        bool Update(T item);
        bool DeleteById(K id);
    }

实施

 public class EFRepository<T, K> : IRepository<T, K>, IDisposable where T : class
    {
        protected readonly DbContext _dbContext;
        private readonly DbSet<T> _entitySet;

        public EFRepository(DbContext context)
        {
            _dbContext = context;
            _entitySet = _dbContext.Set<T>();
        }

        public T Add(T item)
        {
            item = _entitySet.Add(item);
            _dbContext.SaveChanges();
            return item;
        }

        public bool Update(T item)
        {
            _entitySet.Attach(item);
            _dbContext.Entry(item).State = EntityState.Modified;
            _dbContext.SaveChanges();
            return true;
        }

        public bool DeleteById(K id)
        {
            var item = _entitySet.Find(id);
            _entitySet.Remove(item);
            _dbContext.SaveChanges();
            return true;
        }
}