Dapper y "La operación podría desestabilizar el tiempo de ejecución" al nombrar la columna 'Id'

.net dapper

Pregunta

Uso dapper en .NET 4.5 para facilitar la consulta de mi base de datos MS SQl. Lo siguiente funciona bien:

NO HAY PROBLEMAS:

const string sql = @"
SELECT g.Name, g.Slug, g.CreatedDate, COUNT(r.Id) recipientCount
FROM Groups g
LEFT JOIN GroupRecipients r ON r.GroupId = g.Id
WHERE g.CustomerId = @CustomerId
GROUP BY g.Id, g.Name, g.Slug, g.CreatedDate

";

return _connection.Query (sql, new {CustomerId = customerId}). ToList ();

PROBLEMA SELECCIONAR 'ID' COLUMNA - RAISES VerificationException :

const string sql = @"
SELECT g.Id, g.Name, g.Slug, g.CreatedDate, COUNT(r.Id) recipientCount
FROM Groups g
LEFT JOIN GroupRecipients r ON r.GroupId = g.Id
WHERE g.CustomerId = @CustomerId
GROUP BY g.Id, g.Name, g.Slug, g.CreatedDate

";
return _connection.Query<GroupWithRecipientCount>(sql, new { CustomerId = customerId }).ToList();

La excepción se lanza con el mensaje 'La operación podría desestabilizar el tiempo de ejecución'.

¿Alguien puede determinar qué estoy haciendo mal aquí? Mi clase GroupWithRecipientCount se ve así:

public class GroupWithRecipientCount
{
    public int Id { get; set; }
    public DateTime CreatedDate { get; set; }
    public string Name { get; private set; }
    public string Slug { get; private set; }
    public int RecipientCount { get; private set; }
}

EDIT 1:

Eliminé esto:

Si cambio el nombre de la columna Id a otra cosa que no sea 'Id', todo funciona bien, es decir,

"SELECT g.Id SomeOtherName, g.Name, ..."

Parece que también se rompe si cambio el nombre del campo Id de mi clase a SomeOtherName, así que supongo que el problema está relacionado con la asignación del campo Id, pero eso es solo una suposición.

Respuesta aceptada

Obtuve esta excepción cuando mi clase de modelo tenía un tipo de datos incorrecto al mapear a un campo de SQL. Mi modelo era (incorrectamente) un int y la instrucción SQL devolvía una cadena. Comprueba dos veces tus tipos de datos si recibes este mensaje de error críptico.


Respuesta popular

Resultó ser un problema de seguridad. Había bloqueado la excepción original y en su lugar eché otra excepción.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow