我有一個非常基本的數據庫模式,並且已經從它創建了一個dbml。兩個表格在一對多中相關。 (A)1 - *(B)...因此每個A得到一個稱爲「BSet」的EntitySet。當使用foreach而不是select時不正確的EntitySet
如果我做的:
foreach (var a in db.A)
{
Console.WriteLine(a.Name);
foreach (var b in a.BSet)
{
Console.WriteLine(b.Number);
}
}
我發現它打印出的同一組B的爲每個A.如果我調試L2S SQL日誌,我可以看到它在每次調用B放置時間創建正確的SQL 。儘管如此,它還是爲每個A打印相同的一組B.如果我編寫了一個LINQ Select語句,那麼我會得到正確的結果。
什麼在foreach中被破解?我通常對LINQ的微妙之處很滿意,但這個讓我很困惑!
如果你用'db.A選擇'來替換'db.A',它是否工作? (道歉,如果這就是你的意思,「如果我寫一個LINQ Select語句......」,我不確定。) – 2010-07-24 09:56:57
是的,如果我這樣做的話。 – Schneider 2010-07-24 11:39:20