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


Что я делаю не так ?

396   1  

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

    Ничего не найдено.