【问题标题】:How can I use LinqPad's generated context in Visual Studio如何在 Visual Studio 中使用 LinqPad 生成的上下文
【发布时间】:2013-03-12 10:46:39
【问题描述】:

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

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。

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

【问题讨论】:

    标签: linqpad devart


    【解决方案1】:

    首先,提取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.(provider).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();
    

    这应该可以帮助您入门。请记住注意事项,如您链接的答案中所述!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2017-03-10
      相关资源
      最近更新 更多