我有一個LINQ查詢:比較對象int或dbnull.value LINQ
var capacityQuery = from Info in mySQLDataTable.AsEnumerable() where Info.Field<object>("location") == Location.ID orderby Info.Field<DateTime>("date")
線 「其中Info.Field(」 位置 「)== Location.ID」 是我在哪裏有問題
我的問題是。我該怎麼做在WHERE語句的比較可能是A DBNull.Value或int值兩邊
以下是參考:
位置是一個自定義類。該ID返回一個對象。
private int? addressID;
public object ID {
get
{
if (addressID == null)
return DBNull.Value;
else
return addressID;
}
}
它必須是DBNull的原因是因爲它來自數據庫。 「表格」也是從數據庫中填入的。
我知道==在這種情況下是錯誤的,因爲它比較顯然是錯誤的引用。
我知道object.equal(var1,var2)應該可以工作,但它不會猜測是因爲它們是2個不同的對象。
這些值可以是int或DBNull,既可以在表格端也可以在類端。
這是在foreach循環中,所以我使用相同的查詢,其中位置有一個int值或具有DBNull值。
再次我的問題是。我該怎麼做在WHERE語句的比較可能是A DBNull.Value或int值兩邊
你的問題是什麼?另外,你應該在SQL查詢中的數據庫中進行這種過濾,而不是在應用程序端進行。 – Servy 2014-10-27 16:52:54
希望更清楚地添加問題。 – BrinkDaDrink 2014-10-27 17:08:43