2012-10-16 14 views
8

CRD (oluşturun, Okuma, Sil) örnekleri Kolay izleyin MSDN görünür hereNasıl U F içerisinde Tipi Sağlayıcı CRUD koymak?

Orada bir test veritabanı yapmak için güzel link on the page to a script, ve ben öyle yaptım ve kolayca CRD çalışan tüm örneklerini aldık .

CRD sayfada bile kullanışlı alt başlıklar vardır:

http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_UpdateDB

http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_QueryData

http://msdn.microsoft.com/en-us/library/hh361033.aspx#BKMK_DeleteRows

birini (satırları sil) (satırları okuyun) (satır oluşturun) BKMK_UpdateDB denilen U CRUD içinde U yapmaz. Adı, Güncelleme diyor, ancak CRUD içinde C gerçekten yapıyor.

ben, sadece burada küçük bir yardım lütfen oluyor gurusu

Olabilir biri ... şimdi beni vur ve okuma çıkmak CRUD U gösterilmektedir where on this page kaçırdıysanız?

guru en önemsiz e-posta-iş-yükü hafifletmek için: Aşağıda, kod hemen hemen o the MSDN web page göründüğü gibi değildir.

Sadece sunucu ve veritabanı adı için aşağıdaki kodu SqlDataConnection dize düzenlemek, web sayfasında .sql script referred to test veritabanı oluşturma, yayınlama ince çalışmalıdır. Ben sorguya yapılan tek değişiklik

Not sadece bir satır güncellemek için alır. Şimdi tam olarak bir satır döndü. Tek sıradaki basit durumu görmek için daha önemli görünüyor. En azından bir defada birden çok değişiklik göstermeden önce.

bir guru sorgu tarafından döndürülen verilerin bir değişiklik yapmak için tavsiye F # -Type-Sağlayıcı şekilde içine son 4 satırları değiştirmek ve veritabanına Çek şu değiştirilen satır yazmak lütfen?

Örneğin, 10'dan 11'e row.TestData1 değiştirebilir ve db yazmak.

özetlersek: MSDN page kolay bize F # -Type-Sağlayıcı yenilere CRUD içinde CRD yapmak için yapar.

bir guru bizi CRUD içinde U yapmak doğru/kolay F # -Type-Sağlayıcı yolda yeni başlayanlar doldurunuz miyim?

Çok teşekkürler!

#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) 
+0

"* CRUD U gösterilmektedir bu sayfada, şimdi beni vur ve okuma çıkmak nerede kaçırdıysanız ... *" Eh, bunun yerine için kod, güncelleme hakkında isterken sorgulamak için kod sonrası yaptığı güncellenmesi. :-P – ildjarn

cevap

11

Henüz yeni query ifadeleri denemek için bir fırsatım olmadı - yani bu sadece bir tahmin olduğunu: olsa this page üzerinde kod, bunun nasıl bir başka örnek verir

query { for row in db.Table1 do 
    where (row.TestData1 <= 10) 
    select row } 
    |> Seq.iter (fun row -> 
     // Update the row with some new value. 
     row.TestData1 <- row.TestData1 + 1) 

// Now, call .SubmitChanges() to execute the SQL and update the database 
try 
    db.DataContext.SubmitChanges() 
    printfn "Successfully updated the rows." 
with 
    | exn -> printfn "Exception:\n%s" exn.Message 

C# içinde. Temelde, F # query ifadesi basitçe sarma (bu durumda) 'dir Linq SQL; Ben yayınlanmıştır kod çalışmaz eğer öyleyse, C# ile Linq SQL yeni .NET 4.5 örneklerinden bazılarına bir göz atmalısınız.

+1

Teşekkürler Jack.İyi tahmin - Kodunuzu test ettim, iyi çalışıyor. – brucer10

İlgili konular