我很难解读Type Provider Tutorial的"提供生成的类型"部分.本教程提供以下规范.
"您还必须在根提供的类型上调用ConvertToGenerated,其嵌套类型形成一组生成的类型.此调用将给定的提供的类型定义及其嵌套类型定义发送到程序集中,并调整所有提供的类型定义的Assembly属性以返回只有在第一次访问根类型的Assembly属性时才会发出程序集.主机F#编译器在处理该类型的生成类型声明时会访问此属性.
我不知道在哪里放置ConvertToGenerated调用,我不确定汇编文件名参数的要求.有人能提供一个例子吗?谢谢.
我曾尝试使用FLINQ,但它与F#3.0测试版相比已经过时了.
有人可以给我一些关于如何在F#中创建动态SQL查询的指针吗?
FLINQ和Quotation Visualizer示例使用了这个函数,但我无法在任何地方找到它.谢谢.
当我执行以下查询时,我得到一个错误,该查询总结了一个不可为空的小数.当位置/组织组合没有幅度值时,幅度为零.
let q = query { from m in Measure do
where (locations.Contains(m.Location)
&& organizations.Contains(m.Organization))
sumBy m.Magnitude }
Run Code Online (Sandbox Code Playgroud)
错误:无法将null值分配给类型为System.Decimal的成员,该成员是非可空值类型.
我用以下方式解决了这个问题.这有更好的方法吗?
let convert (n:Nullable<decimal>) =
let c:decimal = 0M
if n.HasValue then n.Value else c
let q = query { from m in Measure do
let nullable = Nullable<decimal>(m.Magnitude)
where (locations.Contains(m.Location)
&& organizations.Contains(m.Organization))
sumBy (convert(nullable)) }
Run Code Online (Sandbox Code Playgroud)
谢谢.我将查询更改为以下内容.
query { for m in db.Measurement do
let nullable = Nullable<decimal>(m.Magnitude)
where ( m.Measure = me
&& (if slice.Organization > 0L then organizationUnits.Contains( m.PrimalOrganizationUnit.Value …Run Code Online (Sandbox Code Playgroud) 我想将RatNum表达式转换为Dot Net小数.RatNum有一个ToDecimalString方法,但不是ToDecimal方法.这有什么理由吗?除了Decimal.Parse(ratnum.ToDecimalString(2))之外还有其他方法可以将RatNum转换为小数吗?谢谢.