Dapper:在映射失败时抛出错误

b_l*_*itt 5 dapper

如果 Query 方法未能找到与结果集中返回的列匹配的属性,是否可以选择让 dapper 抛出错误?例如:

public class Person{
  public String FirstName {get; set;}
  public String LastName {get; set;}
}
...
conn.Query<Person>("select FName, LName from Users");
Run Code Online (Sandbox Code Playgroud)

尽管由于名称不匹配而没有传输数据,但上述内容不会引发任何错误。

如果没有,是否有理由不添加它?我旧的本土微 ORM 做到了这一点,我错过了这个功能,所以我会考虑尝试添加它,但如果有特定的设计决策已经消除了它(即“原始性能”),则不会。

Sen*_*der -1

不同的命名属性你必须手动映射。

安装Dapper.FluentMap NuGet 包

手动测绘

public class PersonMap : EntityMap<Person>
{
    public PersonMap()
    {
        // Map property 'FirstName' to column 'FName'.
        Map(p => p.FirstName)
            .ToColumn("FName");

        // Map property 'FirstName' to column 'FName'.
        Map(p => p.LastName)
            .ToColumn("LName");
    }
}
Run Code Online (Sandbox Code Playgroud)

初始化:

FluentMapper.Initialize(config =>
                       {
                           config.AddMap(new PersonMap());
                       });
Run Code Online (Sandbox Code Playgroud)

  • 我不想让它工作,我希望它抛出异常,这样我就知道更新查询。 (2认同)