Wie stelle ich das U in F # Type Provider CRUD?

In MSDN werden einfach zu befolgende Beispiele für CRD (Erstellen, Lesen, Löschen) angezeigtHier

Es ist eine schöneLink auf der Seite zu einem Skript eine Testdatenbank zu erstellen, und ich habe es getan, und alle Beispiele funktionierten problemlos für CRD.

Es gibt sogar praktische Unterüberschriften auf der Seite für CRD:

(Zeilen erstellen)http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_UpdateDB

(Zeilen lesen)http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_QueryData

(Zeilen löschen)http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_DeleteRows

Die BKMK_UpdateDB führt das U in CRUD nicht aus. Sein Name sagt Update, aber es macht wirklich das C in CRUD.

Wenn ich es verpasst habewo auf dieser Seite Das U in CRUD wird angezeigt. Erschieß mich jetzt und hör auf zu lesen.

Könnte einer der Guru hier bitte ein wenig helfen?

So entlasten Sie die Guru-Guru-Mitarbeiter: Nachfolgend finden Sie den Code, so wie er angezeigt wirddie MSDN-Webseite.

Führen Sie einfach die SQL-Datei test-database-create ausSkript, auf das verwiesen wird Bearbeiten Sie auf der Webseite die SqlDataConnection-Zeichenfolge im folgenden Code für Ihren Server- und Datenbanknamen. Sie sollte ordnungsgemäß ausgeführt werden.

Beachten Sie, dass die einzige Änderung, die ich an der Abfrage vorgenommen habe, darin besteht, nur eine Zeile für die Aktualisierung bereitzustellen. Jetzt wird genau eine Zeile zurückgegeben. Scheint wichtiger zu sein, wenn der einfache Fall einer Zeile geändert wird. Zumindest, bevor mehrere Änderungen gleichzeitig angezeigt werden.

Kann ein Guru bitte die letzten 4 Zeilen in die empfohlene F # -Type-Provider-Methode ändern, um eine Änderung an den von der Abfrage zurückgegebenen Daten vorzunehmen und diese geänderte Zeile in die Datenbank zu schreiben?

Ändern Sie beispielsweise row.TestData1 von 10 in 11 und schreiben Sie es in die Datenbank.

Fazit: DieMSDN-Seite macht es uns F # -Type-Provider-Neulingen leicht, die CRD in CRUD durchzuführen.

Kann ein Guru uns Neulingen bitte den richtigen / einfachen F # -Type-Provider-Weg geben, um das U in CRUD zu machen?

Danke vielmals!

#r "System.Data.dll"
#r "FSharp.Data.TypeProviders.dll"
#r "System.Data.Linq.dll"
open System
open System.Data
open System.Data.Linq
open Microsoft.FSharp.Data.TypeProviders
open Microsoft.FSharp.Linq

type dbSchema = SqlDataConnection<"Data Source= --yourServer\yourInstance--;Initial Catalog= --YourTestDatabaseFromTheScript--;Integrated Security=SSPI;">
let db = dbSchema.GetDataContext()
let table1 = db.Table1

query { for row in db.Table1 do
        where (row.TestData1 <= 10)
        select row } 
    |> Seq.iter (fun row -> printfn "%d %s" row.TestData1 row.Name)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage