Dapper Extensions Change Schema
Asked Answered
D

1

7

I am using Dapper Extensions to do some simple CRUD operations on a DB. My problem is that the tables I am using are held in a different schema to dbo. Is there a way to choose the schema at the dapper extensions level?

or

Should this be dealt with via the user that is being used to connect to the db with?

Dempstor answered 5/12, 2013 at 12:11 Comment(0)
G
8

You can use the AutoClassMapper to assign a new schema to your model. An overview on this is on the extensions site. You will basically need to create an AutoClassMapper per model with a different schema. The best place to declare it is alongside your model itself like:

public class MyModel 
{
  public Guid Id { get; set; } 
}

public class MyModelMapper : AutoClassMapper<MyModel>
{
  public MyModelMapper() : base()
  {
    Schema("YourNewSchema");
  }
}
Gynecoid answered 15/12, 2013 at 15:30 Comment(3)
How do we register MyModelMapper, or use it, so that Dapper will use the new schema specified by the example? I've followed your example, but Dapper still does inserts using no schema specified. Granted I'm doing inserts with Dapper.Contrib, perhaps DapperExtensions doesn't work with Dapper.Contrib? I used: DapperExtensions.DapperExtensions.DefaultMapper = typeof(MyNewMapper); It compiles, it just doesn't use the schema specified in MyNewMapper.Wollongong
This works perfect, thanks! Also Table("TableName") <-- is usefulEstevan
re: "How do we register MyModelMapper" : "By default Dapper-Extensions will scan the assembly containing it's assembly for any custom class mappings." ( github.com/tmsmith/Dapper-Extensions/wiki/… )Verso

© 2022 - 2024 — McMap. All rights reserved.