易于遵循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.
如果我错过了这个页面上显示的CR中的U,那就现在就开枪给我,然后退出阅读...
请问其中一位大师请给我一点帮助?
为了减轻大师的垃圾工作负荷:下面的代码几乎与MSDN网页上显示的代码相同.
只需运行网页上引用的test-database-create .sql 脚本,在下面的代码中编辑服务器和数据库名称的SqlDataConnection字符串,就可以正常运行了.
请注意,我对查询所做的唯一更改是只获取一行进行更新.现在只返回一行.看起来更重要的是看到一行的简单情况发生了变化.至少在显示多次更改之前.
请问大师请将最后4行更改为推荐的F#-Type-Provider方式,以便对查询返回的数据进行更改,并将更改后的行写入数据库?
例如,将row.TestData1从10更改为11并将其写入db.
总结: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 …
Run Code Online (Sandbox Code Playgroud) 主 - 细节场景.永远都在.好吧,如果不是永远的话,至少我在70年代的打卡上用FORTRAN做了大师级细节.它仍然存在 - 关于STO的大量细节问题.
我找了一个很好的方法在F#中做一个主细节识别器,没找到它.抱歉,如果我错过了,如果是这样,有人可以回复sto线程或网址吗?谢谢
这是我的F#-newbie在F#中做一个主细节识别器.即:将原始细节字符串的原始/平面列表减少为F#-records列表,其中主字符串与其详细字符串列表配对.
不在这里寻找高尔夫代码.优雅.我曾希望最终得到优雅的东西,但下面只是一个直接的递归列表步行.我的F#-newbie大脑未能看到如何在这里好好利用折叠,理解,折叠,地图,活动模式,计算表达式等.
让它保持在F#中可以做到的事情.如果在.Net中有一个预先构建的平面文件主 - 详细XML数据加载器,它可以在一行.Net调用中将master-detail .txt文件转换为.Net XML,这非常有趣,因为它可以用于F#.
作为一个有着长期命令式编程历史的人,我试图坚持使用不可变的F#进行练习.但是如果在F#中使用命令式或可变代码真的是最好的方法,请解释一下.输出可以是元组列表,记录序列,元组数组等.
任何意见/反馈....谢谢
let testInput =
["master Homer" ; "Doh.."; "Doh!!" ;
"master Has none" ;
"master JoyJoyJoy"; "Yaa!" ; "Yaa!!!"; "Yaa!!!!!!"]
type md = {m: string; d: string list}
member x.addDetail newd = {m = x.m; d = x.d @ [newd]}
static member noMaster = {m = "" ; d = []} // master records can never be null-strings, so "" works here
static member isMaster (L:string) …
Run Code Online (Sandbox Code Playgroud)