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