Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用通用LINQ到SQL存储库的更新方法_C#_Linq To Sql - Fatal编程技术网

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,接受表达式过滤器,那个么它是非常无用的抽象层,只会增加复杂性