Skip to the content.

Database parameters need to have unique names within a single type (case-insensitive); when in doubt, [DbValue] allows the name of individual members to be specified explicitly.

Bad:

public int x {get;set;}
public string X {get;set;}

Better:

public int x {get;set;}
[DbValue(Name = "y")]
public string X {get;set;}

Best:

public int X {get;set;}
public string Y {get;set;}

The final option is preferred because avoiding ambiguity in the name solves a lot more problems than just Dapper!