DapperExtensions 和 Dapper.Contrib 与非 dbo 架构

Dev*_*ebs 9 dapper-extensions

我正在使用 DapperExtensions v4.0.30319,我试图让 Dapper.Contrib 知道我的架构不是 DBO。我提供了:

public class EngineMapper : ClassMapper<Engine>
{
    public EngineMapper() : base()
    {
        Schema("vehicles");
    }
}
Run Code Online (Sandbox Code Playgroud)

我从 DapperExtensions 文档(https://github.com/tmsmith/Dapper-Extensions/wiki/Customized-mapping-for-a-class)中了解到,将使用反射自动找到此类?

但我也尝试明确使用:

DapperExtensions.DapperExtensions.DefaultMapper = typeof(EngineMapper);
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,当我使用 Dapper.Contrib 时:

SqlConnection.Insert(new Engine());
Run Code Online (Sandbox Code Playgroud)

结果插入语句没有指定任何模式。

如何使用 Dapper.Contrib 执行插入(或更新等),其中它使用我指定的表模式?

vah*_*eds 9

您可以使用Table属性来显示schematable命名,中间有一个点:

using Dapper.Contrib.Extensions;

[Table ("vehicles.YourTables")]
public class YourClass
{
    public int Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

  • 我得试试这个。但我真的很讨厌用真正属于数据库层的信息污染我的(与数据库无关的)模型。 (8认同)