我有一些奇怪的情況與一些不會產生我期望的響應的LINQ。LINQ GroupBy子句可以包含一個操作嗎?
在我所希望的方式以下組(兩組:一爲奇數,一個是偶數):
var ints = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var foo = from i in ints
group i by i % 2 into g
select new {
Key = g.Key,
Group = g
};
當我做類似如下的查詢MySQL數據庫(使用IQ驅動程序),它會導致一些完全不直觀的情況:數據庫中每個條目都有一個單獨的「組」。
var bar = from f in MYDATABASE_TABLE.Take(10)
group f by f.Uid % 2 into g // where Uid is an int
select new {
Key = g.Key,
Group = g
};
有沒有人有任何想法,爲什麼這表現如此奇怪?如果我爲其添加任何類型的操作,GroupBy子句似乎表現得很奇怪。 (例如,您可以嘗試使用隨機數生成器來生成0和1(例如,用random.Next(1)替換「f.Uid%2」子句),並且它做類似的事情。)
編輯:Took對「linq-to-sql」的引用不正確,並且增加了對IQ Driver的明確引用。
Linq-to-SQL ...在MySQL上? – 2011-03-02 21:46:14
是的,在MySQL上(對不起 - 不知道這會有所作爲)。 – 2011-03-02 21:48:23
@Tony,問這個問題是因爲LinqToSql不支持MySQL。 – 2011-03-02 21:49:57