任何人都可以向我解釋爲什麼這兩個功能不同嗎?Linq到SQL查詢不返回預期結果
我的樣本數據第一個返回null,第二個返回預期結果。我把+ @""
部分放在避免調用空字符串替換。
代碼總是在我的樣本數據返回null:
to_follows_contact = db.CONTACTs.Where(n =>
n.ACCOUNTID == account.ACCOUNTID
&& (
(n.FIRSTNAME + n.MIDDLENAME + n.LASTNAME + @"").Replace(@" ", @"")
== @"TOFOLLOW"
||
(n.FIRSTNAME + n.MIDDLENAME + n.LASTNAME + @"").Replace(@" ", @"")
== @"FOLLOWTO"
)
).FirstOrDefault();
代碼在我的樣本數據返回正確的聯繫:
foreach (CONTACT n in db.CONTACTs.Where(n => n.ACCOUNTID == account.ACCOUNTID))
{
string ContactName = (n.FIRSTNAME + n.MIDDLENAME + n.LASTNAME + @"")
.Replace(@" ", @"");
if (ContactName == @"TOFOLLOW" || ContactName == @"FOLLOWTO")
to_follows_contact = n;
}
到目前爲止,我對你的問題和你一樣感到困惑......我只想指出,在這種情況下,C#逐字字符串的`@`符號不是必需的。 – Thorarin 2011-01-19 08:47:57
試着看看生成的SQL,可能是一個問題。 – SWeko 2011-01-19 09:00:31