从LINQpad转移到一个合适的Visual Studio项目

本文关键字:Visual 项目 Studio 一个 转移 LINQpad | 更新日期: 2023-09-27 18:14:57

我正在用LINQpad学习LINQ to SQL,它非常棒,但是有很多我不太理解的神奇的东西在里面发生。我正在使用可选的IQ驱动程序连接到Oracle数据库,该驱动程序可以在LINQpad中下载。我有我的查询工作,现在我需要将其移动到Visual Studio内的新项目。

  1. 是否可以在Visual Studio的解决方案中使用IQ ?我似乎找不到任何关于在LINQpad之外使用它的信息。我曾尝试使用DbLinq的DbMetal工具来生成适当的连接类,但我的模式中的某些东西以一种不适合IQ的方式阻塞了该工具。

  2. LINQpad生成的代码可以以某种方式导出吗?生成的Oracle连接代码在LINQpad中完美地工作-是否有一种方法可以重用生成的代码?

从LINQpad转移到一个合适的Visual Studio项目

是的,在技术上可以使用LINQPad在您自己的VS解决方案中创建的类型DataContext。您可以通过运行如下查询来提取它:

File.Copy (GetType().BaseType.Assembly.Location, ...

正如Tom建议的那样,您还需要复制C:'ProgramData'LINQPad'Drivers'DataContext'4.0'IQDriver中的支持文件。请记住,LINQPad使用DevArt Oracle dotConnect作为ADO。你需要购买一个商业许可证才能在你自己的项目中使用。

另一个问题是,没有办法自定义类型化的DataContext,这可能会限制在编写VS解决方案的上下文中(LINQPad通过反射生成类型化的DC)。(因此没有源代码需要调整)。

如果你想在VS项目中通过LINQ访问Oracle数据库,更好的选择可能是购买DevArt的专业版dotConnect for Oracle,它为你提供了一个完整的堆栈,包括一个集成的VS设计器来编写DataContexts(所以你不需要IQ)。整个体验非常类似于LINQ to SQL,但针对的是Oracle(事实上,他们尽可能地模仿了API,从而消除了学习曲线)。DevArt的LINQ翻译引擎多年来不断改进,现在在翻译能力上接近IQ(在某些方面甚至更好)。

是的,您可以使用IQ (IQToolkit &IQToolkit-Oracle Provider)。您可以从您的LINQPad安装中获取dll (C:'ProgramData'LINQPad'Drivers'DataContext'4.0'IQDriver*)。

您还需要使用IQToolkit CodeGen工具来创建您的实体和映射。

正如你所知,Linq to SQL本身不支持Oracle。

之前的一个SO海报说"作为测试版4.35,LINQPad完全支持Oracle -你现在可以做"LINQ to Oracle"查询。我相信它使用了DevArt dotConnect库来管理这个伟大的壮举。"[参见https://stackoverflow.com/questions/1376132/linqpad-and-oracle/6821073#6821073]

这让我认为,如果你想在LinqPad之外的相同的功能,你将不得不得到开发艺术oracle连接器