VB -> C#: InvalidOperationException caused by LINQ GroupBy with multiple properties
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece pelo stack trace de QueryConverter na issue e reproduza a consulta VB LINQ usando várias propriedades GroupBy. Rastreie a conversão da subconsulta e do segmento de consulta envolvidos na falha. A tarefa estará concluída quando a reprodução for convertida sem InvalidOperationException e produzir C# válido para a consulta agrupada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
VB.Net input code
Public Class ConversionTest4
Private Class MyEntity
Property FavoriteNumber As Integer
Property FavoriteColor As String
Property Name As String
End Class
Private Sub BugRepro()
Dim entities As New List(Of MyEntity)
Dim result As IEnumerable(Of String) = From e In entities
Group e By e.FavoriteNumber, e.FavoriteColor Into g1 = Group
Select g1.FirstOrDefault().Name
End Sub
End Class
Erroneous output
public class ConversionTest4
{
private class MyEntity
{
public int FavoriteNumber { get; set; }
public string FavoriteColor { get; set; }
public string Name { get; set; }
}
private void BugRepro()
{
var entities = new List<MyEntity>();
var result = default
#error Cannot convert QueryExpressionSyntax - see comment for details
/* Cannot convert QueryExpressionSyntax, System.InvalidOperationException: Sequence contains more than one element
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertSubQueryAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertQueryWithContinuationAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertQuerySegmentsAsync>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertClausesAsync>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at ICSharpCode.CodeConverter.CSharp.ExpressionNodeVisitor.<VisitQueryExpression>d__68.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at ICSharpCode.CodeConverter.CSharp.CommentConvertingVisitorWrapper.<ConvertHandledAsync>d__8`1.MoveNext()
Input:
From e In entities
Group e By e.FavoriteNumber, e.FavoriteColor Into g1 = Group
Select g1.FirstOrDefault().Name
*/;
}
}
Details
- Product in use: VS extension
- Version in use: 9.2.2.0
- This is a simplified repro code
- I believe this exception happens because the "Group e By" line contains multiple properties to group on.
- Linguagem predominante
- C#
- Estrelas
- 913
- Forks
- 243
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de icsharpcode/CodeConverter
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentário ·
-
C# -> VB
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
icsharpcode/CodeConverter#1281 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeAbertaDifficult area VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 74/100
icsharpcode/CodeConverter#1272 ·
Todas as issues de icsharpcode/CodeConverter
Issues semelhantes
-
Money ExploitsAbertaS: Untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
project-wayfarer/wayfarer-14#1628 ·
Mantenedores costumam responder em até 3 dias
-
:watch: Not Triaged dotnet-target-version
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
Mantenedores costumam responder em até 1 dia
-
copilot documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 2 dias
-
untriaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
dotnet/dotnet-api-docs#13124 ·
Mantenedores costumam responder em até 1 dia
-
agentic-workflows
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia