我正在尝试实现工作单元和存储库,所有获取和查找工作正常,但我无法访问添加、更新和删除。所有其他获取内容的功能都可以(参见屏幕截图)
IRepository
界面:
public interface IRepository<TEntity> where TEntity : class
{
IEnumerable<TEntity> GetAll();
TEntity GetByID(int Id);
IEnumerable<TEntity> Find(Expression<Func<TEntity,bool>> predicate);
void Add(TEntity entity);
void AddRange(IEnumerable<TEntity> entities);
void Remove(TEntity entity);
void RemoveRange(IEnumerable<TEntity> entities);
void Update(TEntity entity);
void Save();
}
Repository
班级
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
private MemoryDataContext context;
public Repository(MemoryDataContext context)
{
this.context = context;
}
public IEnumerable<TEntity> GetAll()
{
return context.Set<TEntity>().ToList();
}
public TEntity GetByID(int id)
{
return context.Set<TEntity>().Find(id);
}
IEnumerable<TEntity> IRepository<TEntity>.Find(Expression<Func<TEntity, bool>>
predicate)
{
return context.Set<TEntity>().Where(predicate);
}
void IRepository<TEntity>.Add(TEntity entity)
{
context.Set<TEntity>().Add(entity);
}
void IRepository<TEntity>.AddRange(IEnumerable<TEntity> entities)
{
context.Set<TEntity>().AddRange(entities);
}
void IRepository<TEntity>.Remove(TEntity entity)
{
context.Set<TEntity>().Remove(entity);
}
void IRepository<TEntity>.RemoveRange(IEnumerable<TEntity> entities)
{
context.Set<TEntity>().RemoveRange(entities);
}
void IRepository<TEntity>.Update(TEntity entity)
{
context.Set<TEntity>().Update(entity);
}
public void Save()
{
context.SaveChanges();
}
private bool disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
context.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
这是
IUnitOfWork
界面:
public interface IUnitOfWork : IDisposable
{
Repository<Person> personRepository { get; }
Repository<Country> countryRepository { get; }
int Complete();
}