小编Ant*_*san的帖子

dapper nuget 1.7枚举映射

我从Nuget(v 1.7)升级到最新版本的Dapper后遇到了一个问题.

它总是返回第一个枚举成员(也就是说,它无法映射).

我使用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 userId=@id", new { id = 2 }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

它给出了Dapper nuget v1.6中的预期输出.这是新版本(1.7)的正确行为吗?

更新:

在使用一些控制台应用程序和新的mvc3应用程序进行一些测试后,我发现当您直接映射枚举类型时,Dapper枚举映射的行为是不一致的.

但是,将枚举作为类的属性进行映射会以某种方式始终返回正确的映射

public class User
{ …
Run Code Online (Sandbox Code Playgroud)

c# mysql enums dapper

30
推荐指数
1
解决办法
1380
查看次数

标签 统计

c# ×1

dapper ×1

enums ×1

mysql ×1