-2
我有這樣的Linq查詢(美孚有日期時間變量):C#的LINQ子查詢中的foreach
var tableFoo = context.GetTable<Foo>();
var tableBar = context.GetTable<Bar>();
var preselect = tableFoo.Where(o => o.Name == "");
List<Foo> foos = new List<Foo>();
foreach (Foo f in preselect) //System.InvalidCastException comes here at the second iteration (Unable to cast to DateTime)
{
Foo foo = f;
var subselect = tableBar.Where(o => o.Id == foo.Id);
foreach (Bar bar in subselect)
{
foo.bars.Add(bar);
}
foos.Add(foo);
}
它正常工作時preselect
包含1個對象。
但是,如果preselect
包含多個對象,它將無法按預期工作。在第一次迭代中它可以工作,但在第二次中,我得到System.InvalidCastException
。
它與內部subselect
有關,因爲如果我刪除內部foreach,它完美的工作。
我認爲它與this有關。但我無法弄清楚要改變什麼。
在preselect
子選擇不適合我的應用程序體系結構