大家好! 这是我的问题:如何检索员工数量? 在DomainService中我有:
public IQueryable<employee> GetEmployeesCommon()
{
return this.ObjectContext. employees
.Where(t => t. is_record_delete == false)
;
}
public int GetNumberOfAllEmployees()
{
return GetEmployeesCommon()
.Where(t => t.idtypepc >= 2)
.Where(t => t.idtypepc <= 11)
.Count();
}
在DataService中:
public void GetEmployeesAllEmployees(Action<InvokeOperation<int>> getEmployeesCallback)
{
Context.GetNumberOfAllEmployees(getEmployeesCallback, null);
}
在ViewModel中:
public void GetTechusAllPCs()
{
EmployeeDataService.GetEmployeesAllEmployees(getEmployeesCallback);
}
private void getEmployeesCallback(InvokeOperation<int> op)
{
EmpAll = op.Value;
}
private int _empAll;
public int EmpAll
{
get { return _empAll; }
set
{
_empAll = value;
RaisePropertyChanged("EmpAll");
}
}
我在LoadData()中调用了GetTechusAllPCs()(在检索完所有实体之后),然后EmpAll具有正确的值,但是如果更改了Employees的数量(添加或删除一个),EmpAll将具有与以前相同的值。我如何获得实际数据?
有人可以说出了什么问题吗?
答案 0 :(得分:0)
也许我错过了什么。
我假设你把员工名单放在某个地方?或者您如何添加或删除员工?
为什么EmpAll不是始终返回集合计数的只读属性。 然后,或者采取简单的方法,当你添加或删除一个雇员时,调用RaisePropertyChanged(“EmpAll”);一旦你知道提交通过了。
或者“更好”的方法是在集合的itemadded事件中添加处理程序,在该处理程序中,只需要一行RaisePropertyChanged(“EmpAll”);
如果它是一个可观察的集合,那么该事件将被收集更改。
如果您想知道是否有任何用户添加或删除了员工,您将不得不在计时器上轮询服务器或使用双工服务。