Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Database LINQ检索语句没有';t返回最新更新的结果_Database_Vb.net_Azure_Linq To Sql - Fatal编程技术网

Database LINQ检索语句没有';t返回最新更新的结果

Database LINQ检索语句没有';t返回最新更新的结果,database,vb.net,azure,linq-to-sql,Database,Vb.net,Azure,Linq To Sql,我有一张名为Organization的表和一张名为Staff的表 在Staff表中,我有两个字段 StaffStatus,指示他/她是否可用于组织和 ParentStatus以指示用户的组织是否仍然可用(由于几个原因,我没有链接它们) 如果员工的家长状态为“可用”,我允许所有者恢复员工(将员工状态更新为“可用”) 我的系统出现了一种奇怪的情况。我首先删除员工(将StaffStatus更新为“不可用”),然后删除组织(将staff.ParentStatus更新为“不可用”)。在此情况下,不允许

我有一张名为Organization的表和一张名为Staff的表

在Staff表中,我有两个字段

  • StaffStatus,指示他/她是否可用于组织和
  • ParentStatus以指示用户的组织是否仍然可用(由于几个原因,我没有链接它们)
如果员工的家长状态为“可用”,我允许所有者恢复员工(将员工状态更新为“可用”)

我的系统出现了一种奇怪的情况。我首先删除员工(将StaffStatus更新为“不可用”),然后删除组织(将staff.ParentStatus更新为“不可用”)。在此情况下,不允许所有者恢复用户。但是,我检索的ParentStatus是“可用的”(因此仍然允许恢复用户),但在数据库中ParentStatus已经更改为“不可用”

我用于删除用户的代码:

Friend Sub removeUser(strInput As String)
    Try
        objUser = (From userDB In db.Staffs Where userDB.UserID = strInput).FirstOrDefault()
        objUser.UserStatus = "Unavailable"
        db.SubmitChanges(ConflictMode.ContinueOnConflict)
    Catch ex As Exception
        For Each occ As ObjectChangeConflict In db.ChangeConflicts
            occ.Resolve(RefreshMode.KeepChanges)
        Next
        db.SubmitChanges()
    End Try        
End Sub
我用于删除组织的代码:

Friend Sub removeOrganization(strInput As String)
    Try
        objOrganization = (From organizationDB In db.Organizations
                           Where organizationDB.OrganizationID = strInput).FirstOrDefault()

        objOrganization.OrganizationStatus = "Unavailable"

        Dim objCompany = From companyDB In db.Companies
                         Where companyDB.OrganizationID = strInput

        For Each mem In objCompany
            mem.ParentStatus = "Unavailable"

            Dim objDepartment = From DepartmentDB In db.Departments
                                Where DepartmentDB.CompanyID = mem.CompanyID

            For Each record In objDepartment
                record.ParentStatus = "Unavailable"
            Next
        Next

        Dim objUser = From UserDB In db.Staffs
                      Where UserDB.OrganizationID = strInput

        For Each mem In objUser
            mem.ParentStatus = "Unavailable"
        Next

        db.SubmitChanges(ConflictMode.ContinueOnConflict)
    Catch ex As Exception
        For Each occ As ObjectChangeConflict In db.ChangeConflicts
            occ.Resolve(RefreshMode.KeepChanges)
        Next
        db.SubmitChanges()
    End Try
End Sub
我如何调用recoverUser(我使用MsgBox()测试我检索到的ParentStatus):

我用于检索用户的查询:

Friend Function getUserByID(strInput As String) As Staff
    getUserByID = (From userDB In db.Staffs
                   Where userDB.UserID = strInput).FirstOrDefault()
End Function
我可以验证数据库中的ParentStatus字段是否已更改

如果我没有删除该用户,而只是直接删除该组织,那么它将变得正常(不允许恢复该用户)。如果我先删除用户,然后删除组织,当我单击恢复用户时,parentStatus为“可用”


这是一种奇怪的情况。我正在使用LINQ、vb.net和Microsoft Azure数据库。

因此我找到了用当前值刷新数据库的解决方案

Friend Function getUserByID(strInput As String) As Staff
    objUser = (From userDB In db.Staffs
               Where userDB.UserID = strInput).FirstOrDefault()
    db.Refresh(RefreshMode.OverwriteCurrentValues, objUser)
    getUserByID = objUser
End Function

因此,我找到了用当前值刷新数据库的解决方案

Friend Function getUserByID(strInput As String) As Staff
    objUser = (From userDB In db.Staffs
               Where userDB.UserID = strInput).FirstOrDefault()
    db.Refresh(RefreshMode.OverwriteCurrentValues, objUser)
    getUserByID = objUser
End Function