2012-10-16 17 views
8

CRD (बनाने, पढ़ने, हटाएँ) के उदाहरण में आसान का पालन करें MSDN में प्रदर्शित hereयू # एफ प्रदाता सीआरयूडी में यू कैसे डालें?

एक अच्छा link on the page to a script एक परीक्षण डेटाबेस बनाने के लिए नहीं है, और मैं वैसा ही किया, और आसानी से सभी CRD के लिए काम उदाहरण मिल गया ।

वहाँ CRD के लिए पृष्ठ पर भी काम उप हेडर हैं:

(पंक्तियों बनाएं) 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

एक जिसे बीकेएमके_UpdateDB कहा जाता है, यूआरयूआर में यू नहीं करता है। इसका नाम अपडेट कहता है, लेकिन यह वास्तव में सीआरयूडी में सी करता है।

अगर मैं where on this page CRUD में यू दिखाया गया है याद किया, बस मुझे अब गोली मार और पढ़ने छोड़ने ...

सका गुरु यहाँ थोड़ी सी मदद प्रदान करें में से ही किसी?

गुरु के लिए जंक-वर्क-लोड को हल्का करने के लिए: नीचे कोड बहुत अधिक है जैसा यह the MSDN web page पर दिखाई देता है।

वेब पेज पर परीक्षण-डेटाबेस-निर्माण .sql script referred to चलाएं, अपने सर्वर और डेटाबेस-नाम के लिए नीचे दिए गए कोड में SqlDataConnection स्ट्रिंग संपादित करें, इसे ठीक चलाना चाहिए।

ध्यान दें कि क्वेरी में किए गए एकमात्र परिवर्तन को अपडेट करने के लिए केवल एक पंक्ति प्राप्त करना है। अब बिल्कुल एक पंक्ति लौटा दी गई है। एक पंक्ति के सरल मामले को बदलने के लिए और अधिक महत्वपूर्ण लगता है। कम से कम एक बार में कई बदलावों को दिखाने से पहले।

क्या कोई गुरु कृपया अंतिम 4 लाइनों को क्वेरी द्वारा लौटाए गए डेटा में परिवर्तन करने के लिए अनुशंसित F # -Type-Provider तरीके से बदल सकता है, और उस पंक्ति को डेटाबेस में बदल दिया है?

उदाहरण के लिए, पंक्ति को बदलें। टेस्टडाटा 1 से 10 से 11 तक और इसे डीबी पर लिखें।

सारांश: MSDN page हमारे लिए सीआरयूडी में सीआरडी करने के लिए F # -Type-Provider newbies को आसान बनाता है।

क्या कोई गुरु हमें सीआरयूडी में यू करने के लिए सही/आसान F # -Type-Provider तरीका पर नए उपहार भर सकता है?

बहुत धन्यवाद!

#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 में यू दिखाया गया है पर, बस मुझे अब गोली मार और पढ़ने छोड़ने ... *" ठीक है, आप के लिए कोड के बजाय, जब अद्यतन करने के बारे में पूछ क्वेरी करने के लिए कोड पोस्ट किया अद्यतन। :- पी – ildjarn

उत्तर

11

मैं अभी तक नई query भाव की कोशिश करने का मौका नहीं पड़ा है - तो यह सिर्फ एक अनुमान है:

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 

this page पर कोड यह कैसे काम करता का एक और उदाहरण देता है, यद्यपि सी # में असल में, एफ # query अभिव्यक्ति (इस मामले में) बस लिंक-टू-एसक्यूएल को लपेटती है; यदि ऐसा है तो कोड मैं पोस्ट काम नहीं करता है, तो आप नए .NET 4.5 के साथ सी # Linq करने वाली एसक्यूएल के कुछ उदाहरण पर एक नज़र रखना चाहिए।

+1

धन्यवाद, जैक।अच्छा अनुमान - मैंने आपके कोड का परीक्षण किया, ठीक काम करता है। – brucer10

संबंधित मुद्दे