F#とORMツールでのあなたの最高の経験を知りたいと思います。 F#+ LINQ 2 SQLにはintricaciesがありますか?F#とORMツール
1
A
答えて
8
現在のバージョンでは、LINQのF#サポートはC#ほど滑らかではありませんが、かなりうまく使用できます。私はF# Snippets Webを実装するときにF#+ LINQをSQLに使用し、F#を使用してほとんどすべてを書くことができました。あなたがC#で得られない素晴らしい機能さえあります。
基本的なクエリの構文を引用し、配列数式に基づいています。
let q = <@ seq { for c in db.Customers do
if c.Country = "UK" then yield c.Name } @>
F#での素晴らしい事は、あなたがあなたのコードをリファクタリングする引用スプライシングを使用することができるということです。
let ukCustomers =
<@ seq { for c in db.Customers do
if c.Country = "OK" then yield c } @>
// Select names of all UK customers
let q = <@ seq { for c in %ukCustomers -> c.Name }
についてF#サポートの制限:
(リンクされた質問に暗示されているように)更新に関する問題はないと思います。
おそらく現在のバージョンの最大の制限は、それが(
for
ループの体内Seq.filter
を使用して例えば)クエリのネストのための限られたサポートを有することであるが、場合には、実際には(PowerPackの次のバージョンで修正されるべきですもしあなたが選択できるなら、LINQ to Entitiesの代わりにLINQ to SQLを使うことをお勧めします。 LINQ to Entitiesは不変型ではうまく動作しないので、F#レコードとF#タプルを簡単に返すことはできません。繰り返しますが、これは将来的には改善される可能性が高いです(私は最近、これについていくつかの作業を行い、F#PowerPackのソースで初期サポートを見つけることができます)。
関連する問題
- 1. このバイナリ漸化式の式を見つけますか? f(m、n)= f(m-1、n)+ f(m、n-1)
- 2. f(n)= log(n)^ mはすべての自然数mに対してO(n)
- 3. 'm a'とガード中のm() '
- 4. F# - 文字列を<m>にキャストしますか?
- 5. Chrome開発ツールでブレークポイントを設定できない、バージョン26.0.1410.64 m
- 6. F F#ソリューション対インタラクティブ#とWCF
- 7. M-V-VMとBackgroundWorker
- 8. F#とop_GreaterThan
- 9. NinjectとF#?
- 10. F#タイプとループ
- 11. WindowsストアアプリとF#
- 12. F#とASP.NET
- 13. F#とのWinforms
- 14. F#とExecuteScalarキャスト
- 15. (Monad m、Monoid o)=> m o?
- 16. rinari-consoleでM-pとM-nを動作させる方法
- 17. git format-patchと^ M at EOL
- 18. Android M(プレビュー)DozeモードとAlarmManager
- 19. .hと.mファイル(Objective-c)
- 20. データベーススキーマで動作するO/R MまたはERDツールはありますか?
- 21. a/b mod m =(a mod m)/(b mod m)ですか?
- 22. F#dispatcher.invokeとdelegateメソッド
- 23. F#タイププロバイダーとREST API
- 24. ペックスとF#2010アルティメット
- 25. F#コードを自動整理するためのツールがあります
- 26. MATLABコード解析ツールと可視化ツール
- 27. 実行F#コードは、F#は
- 28. F#
- 29. F番号:String.Joinと| F#では>演算子
- 30. F#コンパイラのマニュアルとF#のデータフロー解析ライブラリ