当前位置:  开发笔记 > 编程语言 > 正文

DapperExtensions MySQL INSERT集ID

如何解决《DapperExtensionsMySQLINSERT集ID》经验,为你挑选了1个好方法。

如果我上课:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

我尝试使用Dapper / DapperExtensions将其插入到相应的MySQL表中:

var person = new Person { Id = 10, Name = "Bobby" };
connection.Insert(person);

假设MySQL中的Id列设置为AUTO_INCREMENT且该表为空。然后将Id值10更改为1。

是否可以使用Dapper / DapperExtensions插入正确的ID 10?



1> smerlung..:

我发现解决方案非常简单。解决方案是使用自定义的类映射器。(在下面的代码中,EntityBase类是我系统中所有数据库实体的基类)

public class PrimaryKeyAssignedClassMapper : ClassMapper where T : EntityBase
{
    public PrimaryKeyAssignedClassMapper()
    {
        base.Map(m => m.Id).Key(KeyType.Assigned);
        base.AutoMap();
    }
}

然后在调用Insert方法之前的某个时候,我添加了

DapperExtensions.DapperExtensions.DefaultMapper = typeof(PrimaryKeyAssignedClassMapper<>);

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有