Tag: linqpad

‘嵌套linq查询中的列名’无效

最后更新 经过大量的测试,我意识到,如果我在SQL 2000和SQL 2005上的相同数据集(在本例中为Northwind)表上运行相同的查询,我会得到两个不同的结果。 在SQL 2000上,我得到了问题中的错误。 在SQL 2005上,它成功了。 所以我得出结论,linqpad生成的查询在sql 2000上不起作用。要重现这一点,请运行: OrderDetails .GroupBy(x=>x.ProductID) .Select(x=>new {product_id = x.Key, max_quantity = x.OrderByDescending(y=>y.UnitPrice).FirstOrDefault().Quantity}).Dump(); 在sql 2000中的Northwind DB上.sql的翻译是: SELECT [t1].[ProductID] AS [product_id], ( SELECT [t3].[Quantity] FROM ( SELECT TOP 1 [t2].[Quantity] FROM [OrderDetails] AS [t2] WHERE [t1].[ProductID] = [t2].[ProductID] ORDER BY [t2].[UnitPrice] DESC ) AS [t3] ) AS [max_quantity] FROM ( […]

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

我正在学习LINQpad中的LINQ to SQL并且它很棒,但是我不太了解它下面有很多魔法。 我使用可以在LINQpad中下载的可选IQ驱动程序连接到Oracle数据库。 我有我的查询工作,现在我需要将它移动到Visual Studio中的新项目。 是否可以在Visual Studio的解决方案中使用IQ? 我似乎无法找到有关在LINQpad之外使用它的任何信息。 我试图使用DbLinq的DbMetal工具来生成正确的连接类,但是我的模式中的某些东西正在以一种不适用于IQ的方式阻塞该工具。 可以以某种方式导出生成的LINQpad代码吗? 生成的Oracle连接代码在LINQpad中完美运行 – 有没有办法只重用生成的代码?

使用LINQPad将数据插入到SQL CE数据库中,Linq-to-sql随着时间的推移变得越来越慢,我能做些什么呢?

我在磁盘上有一个SQL CE 4.0数据库,以及一个我想用来填充该数据库的LINQPad程序。 我正在使用内置的(到LINQPad)linq2sql系统。 我注意到随着时间的推移,插入一批行所花费的时间会花费越来越多的时间,最终看起来程序已经慢慢爬行了。 是否有某种缓存或类似缓慢的缓存? 如果有的话,我可以做些什么来避免这种减速? 这是我用来测试它的简单测试表: CREATE TABLE dummy ( id int not null primary key identity (1, 1), value nvarchar(20) not null ) 和我的测试程序: void Main() { for (int iteration = 1; iteration <= 1000; iteration++) { Stopwatch sw = Stopwatch.StartNew(); for (int row = 0; row < 100; row++) dummy.InsertOnSubmit(new dummy […]

带有方括号的Uri.EscapeUriString

这是一个奇怪的问题,但让我们看看它得到了什么样的反应…… 如果我编写控制台应用程序(VS 2013,.NET 4.5.1)并执行以下代码行: Uri.EscapeUriString(“[“) 我明白了: [ 但是如果我在我的机器上的LINQPad中执行相同的操作(好吧,技术上是Uri.EscapeUriString(“[“).Dump() ),我得到这个: %5B 为了进一步复杂化, 根据这篇文章, Uri.EscapeUriString(“[“)确实应该返回%5B 。该post写于27/06/2012。 我想也许LINQPad引用的是比VS使用的更旧的DLL,但这意味着EscapeUriString最近已经发生变化,我找不到任何记录。 有没有人对可能导致这种行为的原因有任何想法?

为什么在将LINite Nuget Package添加到LINQPad时会出现DllNotFoundException?

我已将System.Data.SQLite.Core NuGet包添加到我的LINQPad 5 Query(Premium)中,然后尝试执行以下操作: new SQLiteConnection(“:memory:”).Dump(); 但我得到: DllNotFoundException:无法加载DLL’SQLite.Interop.dll’:找不到指定的模块。 (HRESULTexception:0x8007007E) 如何判断LINQPad在哪里可以找到SQLite Native DLL? 请注意我不想使用IQ驱动程序。

从Where(l => l.Side ==’A’)vs Where(l => l.Side.Equals(’A’)生成不同的SQL

我一直在试验LinqPad中的查询。 我们有一个表格Lot和一个Side char(1) 。 当我写一个linq到sql查询Lots.Where(l => l.Side == ‘A’) ,它产生以下SQL — Region Parameters DECLARE @p0 Int = 65 — EndRegion SELECT …, [t0].[Side], … FROM [Lot] AS [t0] WHERE UNICODE([t0].[Side]) = @p0 但是,使用Lots.Where(l => l.Side.Equals(‘A’)) ,它会产生 — Region Parameters DECLARE @p0 Char(1) = ‘A’ — EndRegion SELECT …, [t0].[Side], … FROM [Lot] AS [t0] WHERE […]

int上的无效转换exception为double

也许我疯了,但我认为这是一个有效的演员: (new int[]{1,2,3,4,5}).Cast() 为什么LinqPad扔了一个 InvalidCastException:指定的强制转换无效。 ?

初学者使用Linqpad运行非常基本的linq到sql查询的步骤

尝试使用LinqPad学习Linq, 并对如何开始使用感到沮丧 。 假设我想编写一个C#表达式和一个C#语句,我在SQL服务器中有一个名为Products的表,我想拉出价格大于50的所有行。你会怎么写它?

无法将MySQL查询转换为LINQ

我已经看过这个解决方案,但我的问题仍然存在。 我无法将MySQL查询转换为LINQ 。 我正在使用LinqPad 。 我创建了一个连接。 执行了我的查询并得到了结果。 但是lambda部分是空的。 SELECT * FROM ( SELECT @row := @row +1 AS rownum, zdjh,sjsj ,xhqd FROM ( SELECT @row :=0) r, `tj_xhqd` ORDER BY sjsj ) ranked WHERE rownum % 24= 0 AND zdjh = ‘002999001180’ AND sjsj>=’2018-02-24 08:38:11′ 我想将其转换为LINQ 。 型号名称为kesc 更新1 我试图将我的MySQL转换为LINQ 。 var mainDetails = kesc.tj_xhqd.Where(m […]

InvalidOperationException:类型’System.Linq.Queryable’上没有方法’Where’与提供的参数兼容

(以下代码已更新并正常运行) LinqPad提供动态的OrderBy示例。 我想要做的只是简单地为此示例应用’Where’而不是’OrderBy’。 这是我的代码: IQueryable query = from p in Purchases //where p.Price > 100 select p; string propToWhere = “Price”; ParameterExpression purchaseParam = Expression.Parameter (typeof (Purchase), “p”); MemberExpression member = Expression.PropertyOrField (purchaseParam, propToWhere); Expression<Func> lambda = p => p.Price < 100; lambda.ToString().Dump ("lambda.ToString"); //Type[] exprArgTypes = { query.ElementType, lambda.Body.Type }; Type[] exprArgTypes = { […]