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。 –