我正在學習LINQ與F#3.0。嘗試通過以下URL中的「查詢表達式(F#)」示例:http://msdn.microsoft.com/en-us/library/hh225374%28v=vs.110%29.aspxF#3.0 LINQ groupBy樣本錯誤
我在SQL Server 2008 R2中創建了一個簡單的數據表,數據庫名稱爲myDatabase。 創建作爲所述樣品中指示的一個簡單的數據表:
CREATE TABLE [DBO] [學生]( [StudentID] INT NOT NULL, [名稱] NVARCHAR(50)NOT NULL, [年齡] INT NULL, PRIMARY KEY CLUSTERED([StudentID] ASC) );
再加入幾行:
INSERT INTO學生(StudentID,姓名,年齡) VALUES(1, '阿伯克龍比,金',10); INSERT INTO Student(StudentID,Name,Age) VALUES(2,'Abolrous,Hazen',14); INSERT INTO Student(StudentID,Name,Age) VALUES(3,'Hance,Jim',12); INSERT INTO Student(StudentID,Name,Age) VALUES(4,'Adams,Terry',12); INSERT INTO Student(StudentID,Name,Age) VALUES(5,'Hansen,Claus',11);
試着去了解什麼是GROUPBY樣品中,下面是我的代碼:
#light
open System
open System.Data
open System.Data.Linq
open Microsoft.FSharp.Data.TypeProviders
open Microsoft.FSharp.Linq
[<Generate>]
type dbSchema = SqlDataConnection<"Data Source=.;Initial Catalog=myDatabase;Integrated Security=True">
let db = dbSchema.GetDataContext()
let groupX =
query {
for student in db.Student do
groupBy student.Age into g
select (g.Key, g.Count())
}
但是,我得到了編譯器錯誤: 錯誤的域,構造或成員「計數」沒有定義
我在想Count()是一個內置函數,但事實並非如此。 告訴我如何使用示例代碼。或者,如果這是一個錯誤,請告訴我代碼可以完成這項工作。順便說一句,我相信另一個樣本:groupValBy有同樣的問題。 從網站的代碼示例是:
query {
for student in db.Student do
groupValBy student.Name student.Age into g
select (g, g.Key, g.Count())
}
讓我知道如果我錯過了什麼或誤以爲。 謝謝, 約翰
嗨,Wiktor:太好了!你的建議是正確的。但是,對於互聯網上的示例代碼,沒有這樣開放的System.Linq。所以,我猜不僅是我,還有很多其他人可能不知道這個! – 2012-01-29 21:09:21