Как да принудите WCF услуга за данни да опреснява обекти?

Използвам WCF услуга за данни за достъп до MSSQL база данни. Ако клиентът поиска данни (напр. от таблицата „Проекти“), аз изграждам своя кеш по следния начин:

var collection = new ObservableCollection<Project>();
foreach (var project in this.Entities.Project)
{
   collection.Add(project);
}

return collection;

Ако искам да опресня списъка, просто се обаждам

collection.Clear();

и извикайте горния метод отново. Ако редактирам проект и опресня списъка, както е описано по-горе, той работи добре, но ако променя данните на един клиентски екземпляр и обновя списъка на друг, услугата не зарежда променения проект.

Как мога да принудя DataService да зареди отново цял обект (напр. „Проекти“), дори ако от гледна точка на услугата нищо не се е променило?


person BoltzmannBrain    schedule 16.03.2012    source източник


Отговори (1)


Възможно решение:

public partial class Entities
{
    public void RefreshProject(Project pr)
    {
        this.Detach(pr);
        pr = this.Project.Where(p => p.Id == pr.Id).Single();
    }
}

Употреба:

обекти.RefreshProject(проект);

person Andrey Morozov    schedule 29.06.2012
comment
Приключих с проекта, реших проблема по друг начин. Въпреки това това може да е работещо решение на проблема, така че ще приема отговора ви. - person BoltzmannBrain; 30.06.2012