我已经实现了以下通用方法:
public IQueryable<T> Query(Expression<Func<T, bool>> filter)
{
return context.GetTable<T>().Where(filter);
}
public virtual void Update(T entity)
{
context.GetTable<T>().Attach(entity);
}
我不确定如何在消费者类中实现这一点?理想情况下,我想传入一个userref并相应地更新用户?
答案 0 :(得分:1)
将其更改为:
public IQueryable<T> Query<T>(Expression<Func<T, bool>> filter)
{
return context.GetTable<T>().Where(filter);
}
public virtual void Update<T>(T entity)
{
context.GetTable<T>().Attach(entity);
}
var user=something.Query<User>(x=>x.Name=="bla bla").First;
user.Name="alb alb";
something.Update(user);
但考虑避免编写通用存储库。你没有从中获得那么多。如果它是通用的,暴露IQueryable,接受表达式过滤器,它是非常无用的抽象层,只是增加了复杂性。