我使用下划线字符命名我的MYSQL表和列:
this_is_a_table
应该映射到:ThisIsATable
this_is_a_column
应该映射到:ThisIsAColumn
如果我设置了Dapper可以处理此映射:
DefaultTypeMap.MatchNamesWithUnderscores = true;
有没有办法在Dapper-Extensions中启用它,以便自动映射不需要的核心?
答案 0 :(得分:2)
这是相当紧张的前进,你只需要创建一个custom mapping。这是一个例子:
创建表格
create table hello_world
(
Id int not null,
Value_Column varchar(max)
)
<强>测试强>
public class World
{
public int Id { get; set; }
public string Value { get; set; }
}
public class WorldCustomMapper : ClassMapper<World>
{
public WorldCustomMapper()
{
base.Table("hello_world");
Map(f => f.Id).Column("Id");
Map(f => f.Value).Column("Value_Column");
}
}
[TestFixture]
public class Class1
{
[Test]
public void TestMappping()
{
var conn = new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=true; Initial Catalog=mydb");
conn.Open();
var record = new World
{
Id = 1,
Value = "Hi"
};
conn.Insert(record);
var result = conn.Get<World>(1);
Assert.That(result.Value, Is.EqualTo("Hi"));
}
}