它接縫簡單,但我真的不明白它。我正在使用LINQ和Entity Framework通過這樣(OBJ!= NULL)不起作用
loggedinUser = (from user in context.Users
where user == _guid
select user).ToList()[0];
一個簡單的查詢來檢索數據庫中的對象
我知道我可以使用.FirstOrDefault()
,但我不認爲我的問題與我獲得我的用戶的方式有關。
獲取用戶如果我有這個條件
if (loggedinUser != null)
{
ToLocation = String.Format("{0} {1} {2} {3}", loggedinUser.StreetAddress,loggedinUser.City, loggedinUser.Province, loggedinUser.PostalCode);
}
這是行不通的,因爲如果是null
檢查後,但它是not.when我用這個條件它的工作原理。
if (loggedinUser == null)
{ }
else
{
ToLocation = String.Format("{0} {1} {2} {3}", loggedinUser.StreetAddress,loggedinUser.City, loggedinUser.Province, loggedinUser.PostalCode);
}
我一直使用這種類型的條件(Obj != null)
和它的作品,答案應該是簡單的,但我真的不知道爲什麼它沒有這個時間。我錯過了什麼嗎?
唯一的一點是,該實體的類位於另一個項目中。可以解決問題嗎?
,該類位於該項目是在VB.Net:
<Table("Users")>
Public Class User
<Key()>
Public Property UserID As Integer
Public Property Username As String
Public Property PasswordEncrypted As String
Public Property LastLogin As DateTime
Public Property CreatedByUserID As Integer
Public Property DateCreated As DateTime
Public Property Deleted As Boolean '?
Public Property Email As String
Public Property StreetAddress As String
Public Property City As String
Public Property Province As String
Public Property PostalCode As String
<NotMapped()>
Public Property Lat As Double
<NotMapped()>
Public Property Lon As Double
Public Property GUID As String
<NotMapped()>
Public Property EULAAgreed As DateTime
Public Overrides Function ToString() As String
Return Username
End Function
Public Overrides Function Equals(ByVal obj As Object) As Boolean
If (obj Is System.DBNull.Value) Then
Return MyBase.Equals(obj)
ElseIf (TypeOf obj Is String) Then
Return MyBase.Equals(obj)
Else
Try
Return UserID = CType(obj, Entities.User).UserID
Catch ex As Exception
Return UserID
End Try
End If
End Function
末級
一個很好的解釋還有別的事情上。我們可以看到實際的空檢查嗎? –
在第一種情況下,它是多線聲明嗎?如果是這樣,它是用'{..}'包裹的嗎?如果不是,只有'if'後面的第一行獲得了'if'的應用。 – Magus
我改變了它有我的完整代碼。 –