如何在Visual Studio中使用LinqPad生成的上​​下文

Nei*_*den 4 devart linqpad

这是这个问题的后续事实:

从LINQpad迁移到适当的Visual Studio项目?

..但我无法让它正常工作.

回答这个问题的建议倾销的背景下装配出来的DLL,但尽管我已经做了,当我导入它作为一个参考,它不完全清楚,我,我怎么会产生这方面的实例,在数据库指向它实际上对它运行一个查询,如下所示:

var db = new ContextFromThatDLL(myconnectionstring);

var query = from a db.MYTABLE,其中a.ID == 1选择a;


额外的信息:

我在LinqPad中使用IQ驱动程序连接到Oracle.

已经拥有DevArt的许可证(IQ驱动程序使用),但我知道IQ驱动程序从LINQ生成自己的SQL - 我更喜欢它.另外,我在LinqPad中开发查询,这对我的工作流程非常有用,但发现DevArt并不总能生成与IQ一样好的SQL.

Joe*_*ari 7

首先,在LINQPad中提取类型化数据上下文,如下所示:

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

然后在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();
Run Code Online (Sandbox Code Playgroud)

这应该让你开始.请记住警告,如您所链接的答案中所述!