0
mysql:
table name user
column id int, user_name varchar(100)

public class User
{
    [System.ComponentModel.DataAnnotations.Schema.Column("id")]
    public string Id{get;set;}
    [System.ComponentModel.DataAnnotations.Schema.Column("user_name")]
    public string UserName {get;set;}
}

// query code , work fail , returns UserName is null
connection.GetAsync<User>(id)

这样不行,后来找到了下面的方法,但是写起来很麻烦。Fluentmapper.initialize 性能每次都必须执行

public class DapperMapper : EntityMap<Foo>
{
    public DapperMapper()
    {
        Map(p => p.Id).ToColumn("id");
        Map(p => p.UserName).ToColumn("user_name");
    }
}
// query code , work success
FluentMapper.Initialize(a => a.AddMap(new DapperMapper()));
connection.GetAsync<User>(id)

我想知道是否有更优雅的方式,比如在实体上贴一个标签,比如“ColumnAttribute”

4

0 回答 0