使用C#更新层次结构数据中的字段

时间:2014-04-14 12:25:12

标签: c# sql-server hierarchy

我有一张桌子,

EmployeeID, ManagerID & EmployeeOrder

我需要写c# codesql statment根据EmployeeOrder关系更新所有记录的managerID

Employee Data

1 个答案:

答案 0 :(得分:0)

您可以编写一个函数来更新一个层次结构的EmployeeOrder并以递归方式调用它:

void Update(string ManagerID){
    var employees = DB.Employees.Where(e=>e.ManagerID == ManagerID).ToArray();
    for(int i=0;i<employees.Length;i++){
        employees[i].EmployeeOrder = m.EmployeeOrder + i.ToString("000");
        Update(Employees[i].EmployeeID);
    }
}

与任何递归方法一样,你必须启动它。在你的情况下,你可能会使用类似的东西:

Update(null);

当然,假设您正在使用LINQ to SQL或EntityFramwork或类似工具,那么您可以使用LINQ来访问您的数据库。您可以选择编写与上述算法等效的SQL语句等效或存储过程。