我之前在一些参数中不需要使用视图,但是现在我需要它并且它失败了或者我做错了。
这是我的尝试:
member X.CountStatistics ha =
<@ linq.IncidentStatistix(ha) @>
|> query
|> Seq.map (fun s -> s.Name, s.Stat)
|> Array.ofSeq
参数得到了比特类型。 Linq将它转换为Nullable(不知道为什么可以为空),所以我在那里传递值并且它失败了
The following construct was used in query but is not recognised by the F#-to-LINQ query translator:
Call (Some (FieldGet (Some (Value (IncidentStats+ins)), LinqBase.FRIIB linq)),
System.Data.Linq.ISingleResult`1[LinqBase.IncidentStatistixResult] IncidentStatistix(System.Nullable`1[System.Boolean]),
[Value (false)])
This is not a valid query expression. Check the specification of permitted queries and consider moving some of the query out of the quotation
我做错了什么?
答案 0 :(得分:1)
调用存储过程(作为DataContext
的方法公开)时,您不需要将调用包装在引号内。它可以作为普通方法执行(没有query
):
member X.CountStatistics ha =
linq.IncidentStatistix(ha)
|> Seq.map (fun s -> s.Name, s.Stat)
|> Array.ofSeq
您还可以使用序列推导seq { ... }
或数组推导[| ... |]
来进行额外处理 - 可能 - 更好一点:
member X.CountStatistics ha =
[| for s in linq.IncidentStatistix(ha) -> s.Name, s.Stat |]