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

时间:2013-03-12 10:46:39

标签: linqpad devart

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

Moving From LINQpad to a Proper Visual Studio Project?

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

对该问题的回答建议将上下文程序集转储为dll但是虽然我已经这样做了,当我将其作为引用导入时,我不清楚如何创建该上下文的实例,指出它在数据库中实际运行查询,如下所示:

var db = new ContextFromThatDLL(myconnectionstring);

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


额外信息:

我正在使用LinqPad中的IQ驱动程序连接到Oracle。

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

1 个答案:

答案 0 :(得分:7)

首先,在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();

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