我在.NET 4.5中使用dapper来简化查询我的MS SQl数据库.以下工作正常:
没问题:
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
";
Run Code Online (Sandbox Code Playgroud)
return _connection.Query(sql,new {CustomerId = customerId}).ToList();
问题选择'Id'列 - 提出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();
Run Code Online (Sandbox Code Playgroud)
抛出异常时会显示消息"操作可能会破坏运行时的稳定性".
谁能指出我在这里做错了什么?我的GroupWithRecipientCount类如下所示:
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; }
}
Run Code Online (Sandbox Code Playgroud)
编辑1:
我删除了这个:
如果我将Id列重命名为 "Id"之外的其他内容,一切正常,即
"SELECT g.Id SomeOtherName, g.Name, ..."
Run Code Online (Sandbox Code Playgroud)
看起来如果将我的类'Id字段重命名为SomeOtherName也会中断,所以我猜这个问题与映射Id字段有关,但这只是一个猜测.
bka*_*aid 13
当我的模型类在映射到SQL字段时具有错误的数据类型时,我得到了此异常.我的模型是(错误的)一个int,SQL语句返回一个字符串.如果您收到此隐秘错误消息,请仔细检查您的数据类型.
| 归档时间: |
|
| 查看次数: |
1294 次 |
| 最近记录: |