问题标签 [fsharp.data.sqlclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - 未安装 SQL 的计算机上的 FSharp.Data.SqlClient 类型提供程序(CI 服务器)
我最近开始使用FSharp.Data.SqlClient类型提供程序,但无法使其与AppVeyor构建系统一起使用。
问题是,在运行构建的机器上,没有运行数据库,因此指定本地连接字符串会使构建失败,因为类型提供程序无法从数据库中获取表结构数据。
有没有办法指定某种包含数据库结构信息的本地文件(例如 dbml?)?
我可能可以创建一个公开可用的数据库,向该数据库添加只读凭据和点类型提供程序,以便可以从构建服务器访问它,但我不喜欢这个想法。
f# - F# context.DataContext.ExecuteStoreQuery
有人用过 context.DataContext.ExecuteStoreQuery 吗?我正在使用 SqlEntityConnection 从这样定义的存储过程中提取数据
使用此 F# 代码
但我得到了这个例外:
Procedure or function 'CustOrderHist' expects parameter '@CustomerID', which was not supplied.
azure - FSharp.Data.SqlClient“找不到方法”
当我尝试在 Windows Azure 模拟器、VS2013、F# 3.1-> 上使用 FSharp.Data.SqlClient 类型提供程序时出现这个奇怪的错误
附加信息:找不到方法:'Microsoft.FSharp.Core.FSharpFunc
2<System.Object[],System.Object> FSharp.Data.SqlClient.QuotationsFactory.GetMapperWithNullsToOptions(Microsoft.FSharp.Core.FSharpFunc
2, Microsoft.FSharp.Core.FSharpFunc`2)
当我尝试调用使用我的SqlCommandProvider
类型的函数时会发生错误。
没有任何意义。当我运行完全涵盖此方法的测试套件时,它 100% 有效。当我运行 azure 模拟器时,它会中断。
我的工作角色也引用了测试套件正在使用的所有相同的 DLL...?
f# - 如何在 fsharp.data.sqlclient 中使用 SQL IN 语句?
我有以下示例代码。目标是运行带有多个输入参数的 SQL 语句。
但是,codeName 被推断为字符串类型而不是数组或列表,并给我一个错误。
或者,我可以在没有 where 语句的情况下运行查询并根据结果进行过滤。但是,在许多其他返回数百万行的情况下,我希望在 SQL 服务器级别过滤数据以提高效率。
我在 fsharp.data.sqlclient 的文档中没有找到任何相关示例。请帮忙!
reflection - 如何动态访问 F#.Data.SqlClient 记录属性
我Record
通过 F# Data SqlClient 类型提供程序使用如下代码返回了一些数据:
我现在想first
Record
动态访问它的属性——我需要哪些属性取决于一些用户输入——他们输入key
.
我知道我可以使用 C# 风格的反射来做到这一点,代码如下:
但是,我想知道是否有任何方法可以使用更简单的 F#
理想情况下,我想使用类似的东西first.[key]
- 但此语句返回错误The field, constructor or member "Item" is not defined
f# - 带有 fsharp 数据 SqlClient 的命名参数
从外部文件加载 T-Sql 时,我无法编译此代码。当 T-Sql 直接插入 F# 时,该代码有效:
但是在尝试从 sql 文件加载 T-Sql 时出现此错误:
Execute 接受 0 个参数,但这里给出 2 个。
T-Sql:
F#:
我在管理工作室测试了 t-sql,它在那里工作。我只收到上述错误。我在这里想念什么?
f#-data - 我可以为允许 null 的十进制列插入 null
我有这个 SqlCommandProvider:
当我调用它并尝试为 price 列传递 null 时,该列在数据库中接受 null,我得到一个错误。这可能吗?
表定义:
f# - 升 F 添加列表
如何将 obj 列表转换为 int 类型。我正在尝试使用下面的 map 函数添加两个列表,但它不适用于 obj 列表。
错误消息:“obj”类型不支持运算符“+”
multithreading - 线程安全的查询表达式 F#
我有一组函数,它们使用 FSharp.Data.TypeProviders 通过 sql 对数据库进行多次调用以检索数据。
代码如下所示:
当我运行它时,我得到以下信息:
FSharp.Core.dll 中出现“System.ArgumentException”类型的第一次机会异常
附加信息:已添加具有相同密钥的项目。
更准确地说:
System.ArgumentException:已添加具有相同键的项目。在 Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter.EvaluateQuotation(FSharpExpr e) 在 Microsoft.FSharp.Linq.QueryModule.EvalNonNestedInner(CanEliminate canElim, FSharpExpr queryProducingSequence) 在 Microsoft.FSharp.Linq.QueryModule.EvalNonNestedOuter(CanEliminate canElim, FSharpExpr tm)在 Microsoft.FSharp.Linq.QueryModule.clo@1737-1.Microsoft-FSharp-Linq-ForwardDeclarations-IQueryMethods-Execute[a,b](FSharpExpr`1 ) ... ... 在 Microsoft.FSharp.Collections.ArrayModule .Parallel.Map@714-3.Invoke(Int32 obj) 在 System.Threading.Tasks.Parallel.<>c__DisplayClassf`1.b__c() 在 System.Threading.Tasks.Task.InnerInvoke() 在 System.Threading.Tasks System.Threading 中的 .Task.InnerInvokeWithArg(Task childTask)。
我还尝试使用 Parallel.For() 从 C# 运行它。我可能缺少一些基本的东西。有没有一种简单的方法可以使函数线程安全?还是查询表达式?
谢谢您的帮助!
解决的可能选项:当我在函数中包含对数据库上下文的调用时,解决了并行异常。如:
f# - 为什么 FSharp.Data.SqlClient 记录作为对象公开?
我正在做一个演示,我可以在其中展示在 F# 库中使用 SqlClient 类型提供程序然后从 C# 使用它是多么容易,我认为这可能是将事物纳入项目的一种方法。由于许多使用 C# 的人想要使用接口等。我想我向他们展示了可以组合所有东西,但我没有得到预期的结果。我有以下 F# 代码在 F# 中按预期工作:
但是当我尝试从我的 C# 应用程序中使用它时,我没有得到getOrdersPerEmployee
返回一个可枚举的记录,而是返回一个可枚举的对象:
在上面的代码中,我希望在 lambda 中启用智能感知y
,但什么也没有。有任何想法吗?