任何人都可以幫我弄清楚這一點嗎?LINQ to SQL與NULL值
下面的代碼工作正常,並得到裏面的,如果statument
foreach (var m in msg)
{
if (string.IsNullOrEmpty(m.PhoneNumber))
{
m.PhoneNumber = (from c in db.Customers
where c.CustomerID == m.CustomerID
select c.PhoneNumber).Single();
}
}
然而,在下面的代碼phoneNumber的是從來沒有設置
foreach (var m in msg.Where(z => (z.PhoneNumber == null || z.PhoneNumber == "")))
{
m.PhoneNumber = (from c in db.Customers
where c.CustomerID == m.CustomerID
select c.PhoneNumber).Single();
}
我假定它是因爲頂部代碼實際上評估表達而下面的劑量。如果是這種情況,那麼如何在未評估的LINQ查詢中檢查null?
編輯只是要停在這裏的困惑是味精是如何在這兩種情況下
var msg = from m in db.Messages
where (m.StatusID == (int)MessageStatus.Submitted && m.MessageBoxTypeID == (int)MessageBoxType.Outbox)
select m;
您是否在創建'msg'序列時使用了相同的代碼? (這兩個片段看起來相當於我,除非我失去了一些東西。) – Douglas 2012-02-04 13:50:16
是的,味精是完全一樣的 – 2012-02-04 13:53:14
你能告訴我們'味精'的代碼嗎? – Douglas 2012-02-04 13:59:05