小编bru*_*r10的帖子

如何将U放入F#Type提供程序CRUD?

易于遵循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)

linq f# linq-to-sql type-providers

9
推荐指数
1
解决办法
1563
查看次数

Master-Detail场景需要F#优雅

主 - 细节场景.永远都在.好吧,如果不是永远的话,至少我在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)

f#

1
推荐指数
1
解决办法
256
查看次数

标签 统计

f# ×2

linq ×1

linq-to-sql ×1

type-providers ×1