易于理解的 CRD 示例(创建、读取、删除)出现在 MSDN此处
页面上有一个很好的链接,指向创建测试数据库的脚本,我这样做了,并且很容易得到所有适用于 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
名为 BKMK_UpdateDB 的那个不做 CRUD 中的 U。它的名字是 Update,但它确实是 CRUD 中的 C。
如果我错过了此页面上 CRUD 中 U 的显示位置,请立即向我开枪并停止阅读...
请问这里的一位大师可以提供一点帮助吗?
为了减轻大师的垃圾工作量:下面的代码与 MSDN 网页上的代码非常相似。
只需运行网页上提到的 test-database-create .sql脚本,在下面的代码中为您的服务器和数据库名称编辑 SqlDataConnection 字符串,它应该可以正常运行。
请注意,我对查询所做的唯一更改是只更新一行。现在正好返回一行。似乎更重要的是看到一排的简单情况发生了变化。至少在一次显示多个更改之前是这样。
大师能否将最后 4 行更改为推荐的 F#-Type-Provider 方式以更改查询返回的数据,并将更改后的行写入数据库?
例如,将 row.TestData1 从 10 更改为 11 并将其写入数据库。
总结:MSDN 页面让我们 F#-Type-Provider 新手在 CRUD 中做 CRD 很容易。
大师可以请我们新手填写正确/简单的 F#-Type-Provider 方法来在 CRUD 中执行 U 吗?
非常感谢!
#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)