У меня есть два запроса:
member private x.CheckIfUserExistsUsingId(userId:int, context:StoryBoardContext) =
<@ context.Users
|> Seq.exists (fun currentUser -> currentUser.Id = userId) @>
И
member private x.FindUserById(userId:int, context:StoryBoardContext) =
<@ context.Users
|> Seq.filter(fun currentUser -> currentUser.Id = userId)
|> Seq.head @>
Я бы хотел реорганизовать это так, чтобы два
fun currentUser -> currentUser.Id = userId
могли быть однимметод вроде:
member private x.IfUserIdMatches (userId:int) =
fun (currentUser:User) -> currentUser.Id = userId
И затем используйте его:
member private x.CheckIfUserExistsUsingId(userId:int, context:StoryBoardContext) =
<@ context.Users
|> Seq.exists (x.IfUserIdMatches (userId)) @>
Но я продолжаю получать ошибку:
The following construct was used in query but is not recognised by the F#-to-LINQ query translator...
, которая заставляет меня думать, что моя подписьметод плохо построен.Будучи новичком в F #, я немного запутался, так как уверен, что это можно сделать в C # с помощью метода, возвращающего Func.Тем не менее, я понимаю, что с самого начала есть различия, поскольку F # использует другую библиотеку для построения запросов linq.