LINQ を使用して FoxPro データベースにアクセスする合理的な方法はありますか?
4 に答える
実装作業を終えたところです。 http://linqtovfp.codeplex.com/
.NET の祝福/呪いの 1 つは、.NET プログラミングの質問に対する答えが「いいえ」になることはめったにないことです。
たとえば、この人 (Sergey と Larry に感謝) は、LINQ を使用して FoxPro タイプの DB にアクセスする方法を示しています: http://blogs.msdn.com/calvin_hsia/archive/2007/11/30/6620133.aspx
より良い質問は、おそらく、できませんが、する必要があります!?
このようなオプションを主張する場合は、Entity Framework を参照することをお勧めします: http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx
Linq2Sql は Sql Server のみをサポートし、エンティティ フレームワークは多数をサポートしますが、foxpro はその 1 つではありません。
NHibernate には 1.0になったばかりの Linq プロバイダーがあり、少し調整するだけで Foxpro で動作させることができます。
IMO NHibernate.Linq が最善の策ですが、それはすべて「合理的」を定義する方法に依存します;-)
私は現在、この一般的な領域で作業しています - Silverlight を VFP9 テーブルなどのレガシー データに接続しようとしています。
Web サービス アプローチを採用する方が簡単な場合があります。これには、VFP データにアクセスし、.NET が DataSet または DataTable にロードできる形式で CursorToXML() を使用してそれらを返すメソッドを持つ Visual FoxPro を使用して COM サーバー DLL を作成する必要があります。CursorToXML はそれを単独で行うことができます。次に、.NET で WCF Web サービス プロジェクトを作成し、VFP によって作成された COM DLL をそのプロジェクトに追加します。ここでは、COM 相互運用機能を使用しています。次に、VFP DLL のメソッド呼び出しにマップする WCF サービスで WebMethods を作成します。WCF サービスに入ると、そのサービスをデータ ソースとして使用できます。おそらく最速の方法ではありませんが、うまくいきます。
Rick Strahl は、Code Magazineでこれらすべてを説明する優れた記事を書いています。