Я учусь LINQ с F # 3.0.Попытайтесь следовать примерам «Выражения запросов (F #)» с этого URL: http://msdn.microsoft.com/en-us/library/hh225374%28v=vs.110%29.aspx
Я создал простую таблицу данных в SQL Server 2008 R2, имя базы данных - myDatabase.Создайте простую таблицу данных, как указано в примере:
CREATE TABLE [dbo]. [Student] ([StudentID] INT NOT NULL, [Имя] NVARCHAR (50) NOT NULL, [Age] INT NULL,ПЕРВИЧНЫЙ КЛЮЧ КЛАСТЕРНЫЙ ([StudentID] ASC));
Затем добавьте несколько строк:
INSERT INTO Student (StudentID, Name, Age) VALUES (1, 'Abercrombie, Kim', 10);INSERT INTO Student (StudentID, Имя, Возраст) ЦЕННОСТИ (2, «Abolrous, Hazen», 14);INSERT INTO Student (StudentID, Имя, Возраст) ЦЕННОСТИ (3, «Ханс, Джим», 12);INSERT INTO Student (StudentID, Name, Age) VALUES (4, «Адамс, Терри», 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' не определены
Я думаю, что Count () является встроенной функцией, но это не так.Подскажите, как я могу использовать пример кода.Или, если это ошибка, покажите мне, код может сделать эту работу.Кстати, я полагаю, что другой пример: groupValBy имеет ту же проблему.Пример кода с веб-сайта:
query {
for student in db.Student do
groupValBy student.Name student.Age into g
select (g, g.Key, g.Count())
}
Дайте мне знать, если я что-то упустил или неправильно думаю.Спасибо, Джон