Dapper使用奇异的表名

时间:2015-08-25 13:04:35

标签: c# dapper

我尝试了Dapper和Dapper.Contrib。我有以下课程:

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public bool Active { get; set; }
}

它正在映射到表格" Customers"这是多元化的。有没有一种简单的方法可以让Dapper为所有表使用单个表名?

2 个答案:

答案 0 :(得分:15)

Dapper.Contrib支持Table属性。使用它手动指定实体使用的表的名称。有关详细信息,请参阅docs

或者,SqlMapperExtensions上有一个名为TableNameMapper的静态委托。您可以将其替换为执行复数化的实现。框架中的PluralizationService可以帮助您。

使用如下:

SqlMapperExtensions.TableNameMapper = (type) => {
    // do something here to pluralize the name of the type
    return type.Name;
};

答案 1 :(得分:0)

在您的实体类上使用“表”数据注释属性,如下所示:

[Table("Customer")]
public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public bool Active { get; set; }
}