6

これは本当にこの質問の続きです:

LINQpad から適切な Visual Studio プロジェクトに移行しますか?

..しかし、私はそれを適切に機能させることができません。

その質問への回答は、コンテキスト アセンブリを dll としてダンプする提案ですが、それを行ったにもかかわらず、それを参照としてインポートすると、そのコンテキストのインスタンスをどのように作成し、それをデータベースに向けるかが明確ではありません。実際にそれに対して次のようなクエリを実行します。

var db = new ContextFromThatDLL(myconnectionstring);

var query = from a in db.MYTABLE where a.ID == 1 select a;


追加情報:

LinqPad で IQ ドライバーを使用して Oracle に接続しています。

すでに DevArt のライセンス (IQ ドライバーが使用する) を持っていますが、IQ ドライバーが LINQ から独自の SQL を生成することを認識しています。さらに、LinqPad でクエリを開発しています。これは私のワークフローに最適ですが、DevArt が常に IQ ほど優れた SQL を生成するとは限りません。

4

1 に答える 1

9

まず、次のように LINQPad で型指定されたデータ コンテキストを抽出します。

string dcPath = GetType().BaseType.Assembly.Location;
string targetFolder = @"c:\temp";
File.Copy (dcPath, Path.Combine (targetFolder, Path.GetFileName (dcPath)));

次に、Visual Studio で、型指定されたデータ コンテキスト DLL と、ドライバー フォルダーから次の DLL を参照します。

  • IQDriver.dll
  • IQToolkit.dll
  • IQToolkit.Data.dll
  • IQToolkit.Data.(プロバイダ).dll

プラス DevArt ドライバー。

次に、型指定されたデータ コンテキストを次のようにインスタンス化できます (これは、SQLite で行う方法を示しています)。

var dc = new LINQPad.User.TypedDataContext (IQToolkit.Data.DbEntityProvider.From
   ("IQToolkit.Data.Sqlite", @"Data Source=D:\SQLite.NET\nutshell.db",
    "LINQPad.User.TypedDataContext"));

var customerCount = dc.Customers.Count();

これで始められるはずです。リンク先の回答に記載されているように、注意事項に注意してください。

于 2013-03-19T15:01:11.003 に答える