C# 如何使用通用LINQ到SQL存储库的更新方法
我已经实现了以下通用方法:C# 如何使用通用LINQ到SQL存储库的更新方法,c#,linq-to-sql,C#,Linq To Sql,我已经实现了以下通用方法: 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); }
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);
}
publicIQueryable查询(表达式过滤器)
{
返回context.GetTable().Where(过滤器);
}
公共虚拟无效更新(T实体)
{
context.GetTable().Attach(实体);
}
我不知道如何在消费者类中实现这一点?理想情况下,我希望传入userref并相应地更新用户?将其更改为:
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);
publicIQueryable查询(表达式过滤器)
{
返回context.GetTable().Where(过滤器);
}
公共虚拟无效更新(T实体)
{
context.GetTable().Attach(实体);
}
var user=something.Query(x=>x.Name==“bla bla”).First;
user.Name=“alb alb”;
更新(用户);
<>但是考虑避免写一般的知识库。你从他们那里得不到多少。若它是泛型的,公开IQueryable,接受表达式过滤器,那个么它是非常无用的抽象层,只会增加复杂性