Reputation: 1021
I'm using DapperExtensions v4.0.30319 and I'm trying to let Dapper.Contrib know that my schema is not DBO. I have provided:
public class EngineMapper : ClassMapper<Engine>
{
public EngineMapper() : base()
{
Schema("vehicles");
}
}
I understand from the DapperExtensions documentation (https://github.com/tmsmith/Dapper-Extensions/wiki/Customized-mapping-for-a-class) that this class will be automatically found using reflection?
But I also tried explicitly using:
DapperExtensions.DapperExtensions.DefaultMapper = typeof(EngineMapper);
Either way when I use Dapper.Contrib's:
SqlConnection.Insert(new Engine());
the resulting insert statement does not specify any schema.
How do I do an insert (or update, etc) using Dapper.Contrib where it uses the table schema which I specify?
Upvotes: 11
Views: 9244
Reputation: 1559
I needed to also be able to map class to the custom schema. My project is asp.net core 2.2 Tried to decorate the poco with the [Table("schema.Table")]
attribute, but dapper contrib
won't seem to pick it up. Here are the proj. dependencies
However this approach did the trick:
See if that helps.
Upvotes: 0
Reputation: 2903
You can use Table
attribute to show schema
and table
name together with a dot in between:
using Dapper.Contrib.Extensions;
[Table ("vehicles.YourTables")]
public class YourClass
{
public int Id { get; set; }
public string Name { get; set; }
}
Upvotes: 12