.net에 관해서는 새삼스럽고 가능한 한 효율적으로 처리하는 방법에 관해서는 저를 망설이게합니다.db 결과가 null이 아닌 경우에만 객체 인스턴스 생성
나는 Entity Framework를 통해 여러 레코드를 검색 한 다음 관찰 가능한 컬렉션에 추가 된 "issue"개체의 인스턴스를 여러 개 만듭니다.
"문제"개체에는 단순히 정수와 문자열을 포함하는 "assignedto"라는 하위 클래스가 있습니다. 그러나 항상 DB에 assignedTo 기록이 완료 될 것이라고 경우되지 않습니다, 즉 엔티티 프레임 워크가 정확한지 아무 것도 반환하지 않습니다 :
오류가 반환Public Sub LoadIssueData(ByRef parIssueItems As ObservableCollection(Of Issue))
Using db As New pResolveConnection
Dim dbIssueList As New List(Of String)
Try
Dim qry = From a In db.vCurrentLogs
Where a.statusID <> constClosedIssueStatus
Select a
Order By a.createdDate Descending
For Each res In qry
dbIssueList.Add(res.ID)
Dim issueIndex As Integer
issueIndex = GetIssueIndex(res.ID, parIssueItems)
If issueIndex = -1 Then
parIssueItems.Add(New Issue(res.ID, res.title, res.createdDate, res.CreatedByUserName, res.CreatedByTeamName, res.CreatedByDeptName, New AssignedTo(res.assignedToID, res.assignedToName)))
Else
Dim oldIssue As New Issue(parIssueItems.Item(issueIndex))
Dim newIssue As New Issue(res.ID, res.title, res.createdDate, res.CreatedByUserName, res.CreatedByTeamName, res.CreatedByDeptName, New AssignedTo(res.assignedToID, res.assignedToName))
VerifyIssue(oldIssue, newIssue, parIssueItems, issueIndex)
End If
Next
'Some way to remove issues no longer in db
Catch Ex As Exception
MsgBox(Ex.Message)
Throw
Finally
db.Dispose()
dbIssueList = Nothing
End Try
End Using
LoadIssueNotes(parIssueItems)
End Sub
는 널 (NULL) 개체를 할 때 정확한 값을 가지고 있어야합니다 res.assignedToID는 아무것도 아니기 때문에 "assignedto"의 새 인스턴스를 만들려고합니다.
이 경우 "문제"인스턴스를 만들지 만 assignedto 인스턴스를 만들지 않으므로 보유 클래스와 아무 관계가 없습니다.
나는 내 삶을 위해 이것을 할 수있는 쉬운 방법을 생각할 수 없다. 나는 vba 배경을 가지고있어서 hed에서 나는 단지 nz (res.assignedToID, 0)를 감싸고 싶다. .net에는 NZ가 없지만 그 객체의 인스턴스는 어쨌든 만들어야합니다. 이는 피하고 싶습니다.
모든 포인터가 도움이 될 것입니다.
문제 내부에 매개 변수 값을 추가하기 전에 매개 변수 값을 확인할 수 있습니까? null 경우는 대신에 ""를 붙이십시오 – Eric
정확히 어디에서 에러가 발생합니까? –
죄송합니다 observable 컬렉션에 항목을 추가 initializing 때 죄송합니다 : parIssueItems.add .... –