csharp 存储库模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 存储库模式相关的知识,希望对你有一定的参考价值。
public abstract class EntityBase
{
public int Id { get; protected set; }
}
public class Repository<T> : IRepository<T> where T : EntityBase
{
private readonly ApplicationDbContext _dbContext;
public Repository(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public virtual T GetById(int id)
{
return _dbContext.Set<T>().Find(id);
}
public virtual IEnumerable<T> List()
{
throw new NotImplementedException();
//return _dbContext.Set<T>().AsEnumerable();
}
public virtual IEnumerable<T> List(System.Linq.Expressions.Expression<Func<T, bool>> predicate)
{
throw new NotImplementedException();
//return _dbContext.Set<T>()
// .Where(predicate)
// .AsEnumerable();
}
public void Insert(T entity)
{
_dbContext.Set<T>().Add(entity);
_dbContext.SaveChanges();
}
public void Update(T entity)
{
_dbContext.Entry(entity).State = EntityState.Modified;
_dbContext.SaveChanges();
}
public void Delete(T entity)
{
_dbContext.Set<T>().Remove(entity);
_dbContext.SaveChanges();
}
}
public interface IRepository<T> where T : EntityBase
{
T GetById(int id);
IEnumerable<T> List();
IEnumerable<T> List(Expression<Func<T, bool>> predicate);
void Insert(T entity);
void Delete(T entity);
void Update(T entity);
}
以上是关于csharp 存储库模式的主要内容,如果未能解决你的问题,请参考以下文章
csharp 只读存储库
csharp 存储库interface.cs
csharp 使用存储库
csharp Init git存储库
csharp 存储库interface.cs
csharp EF的通用存储库