не <|не работает для linq2sql? - PullRequest
1 голос
/ 29 марта 2011
<@[for i in linq.TrueIncidents -> i.RecTime, i.Name, (if i.Description = null && i.ID.HasValue = false then i.Message else "hello") ] @>

работает

<@[for i in linq.TrueIncidents -> i.RecTime, i.Name, (if i.Description = null && not <| i.ID.HasValue then i.Message else "hello") ] @>

не работает

"не" работает внутри linq2sql?или это ошибка?

1 Ответ

2 голосов
/ 29 марта 2011

Я думаю, что это известное ограничение цитат F # для LINQ переводчика. Насколько я знаю, переводчик оставляет подвыражения по мере их написания (например, условие в if .. then или выражение после yield ..), поэтому вы можете использовать только те конструкции, которые понимает C #.

Единственное место, где обрабатывается конвейерная обработка, это когда вы пишете:

<@ source |> Seq.filter (...) |> Seq.etc (...) @>

Вы можете видеть, что в исходном коде - поиск CallPipe в LinqQueries.fs . Это определенно немного прискорбно, потому что и |>, и <| можно обработать, просто заменив их определением (что довольно просто). Я полагаю, что это будет улучшено в следующем выпуске F #, поэтому вы можете отправить электронное письмо по адресу fsbugs на microsoft dot com , чтобы убедиться, что эта ошибка не появляется потерял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...