30
Nuget(v 1.7)からDapperの最新バージョンにアップグレードした後に問題が発生しました。dapper nuget 1.7 enums mapping
常に最初の列挙型メンバを返します(つまり、マップに失敗します)。
私はデータベースとして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)の正しい動作ですか?
アップデート:私はあなたが直接列挙型をマップする際にDapperの列挙マッピングの行動が矛盾していることがわかったいくつかのコンソールアプリケーションと新鮮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を再展開していません。 –