F# Linq to sql-вызов хранимой процедуры
Я использовал view здесь, прежде я не был нужен в каком-то параметре, но теперь он мне нужен, и он не работает, или, может быть, я делаю что-то неправильно.
Вот моя попытка:
member X.CountStatistics ha =
<@ linq.IncidentStatistix(ha) @>
|> query
|> Seq.map (fun s -> s.Name, s.Stat)
|> Array.ofSeq
Параметр получил битный тип. Linq преобразовал его как Nullable (не знаю, почему 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
Что я делаю не так ?
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 |]
Comments