Как использовать метод обновления для общего хранилища LINQ to SQL - PullRequest
3 голосов
/ 16 ноября 2010

Я реализовал следующие общие методы:

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 и соответствующим образом обновить пользователя?

1 Ответ

1 голос
/ 11 марта 2011

Измените его на:

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, принимает фильтры Expression, это совершенно бесполезный уровень абстракции и просто добавляет сложности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...