30
我从Nuget升级到Dapper的最新版本(v 1.7)后遇到问题。dapper nuget 1.7枚举映射
它总是返回第一枚枚举成员(即它无法映射)。
我正在使用MySQL作为数据库。
CREATE TABLE `users_roles` (
`userId` INT(11) NOT NULL,
`roleId` INT(11) NOT NULL,
KEY `user_id` (`userId`),
KEY `role_id` (`roleId`)
);
INSERT INTO `users_roles` (`userId`, `roleId`) VALUES (1, 1);
INSERT INTO `users_roles` (`userId`, `roleId`) VALUES (2, 2);
public enum Role {
Anonymous = 0, Authenticate = 1, Administrator = 2
}
var role = Current.Db.Query<Role>(@"SELECT roleId as Role FROM users_roles
WHERE [email protected]", new { id = 2 }).FirstOrDefault();
它给出了Dapper nuget v1.6的预期输出。这是新版本(1.7)的正确行为吗?
更新:
做一些测试与几个控制台应用程序和新鲜MVC3 appications后,我发现,当你映射了枚举直接键入小巧玲珑枚举映射的行为是不一致的。
然而,映射一个枚举作为一个阶级的属性不知何故始终返回正确的地图
public class User
{
public int Id { get; set; }
public Role Role { get; set; }
}
var user = Current.Db.Query<User>(@"SELECT roleId as Role, userId as Id
FROM users_roles
WHERE [email protected]", new { id = 2 }).FirstOrDefault();
user.Role的结果莫名其妙地返回预期的输出
看起来像一个错误;请在项目网站上登录 –
谢谢,已经记录下来......等待回复 –
自5月10日起,这个问题已经在代码*中修复了。不过,我们还没有重新部署Nuget,AFAIK。 –