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

2024-01-22

这实际上是这个问题的后续内容:

从 LINQpad 迁移到正确的 Visual Studio 项目? https://stackoverflow.com/questions/8140385/moving-from-linqpad-to-a-proper-visual-studio-project

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

该问题的答案建议将上下文程序集转储为 dll,但尽管我已经这样做了,但当我将其作为引用导入时,我并不完全清楚如何创建该上下文的实例,将其指向数据库并实际对其运行查询,如下所示:

var db = new ContextFromThatDLL(myconnectionstring);

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


额外的信息:

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

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


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

这应该可以帮助您开始。请记住您链接的答案中所述的警告!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio 中使用 LinqPad 生成的上下文 的相关文章

随机推荐