Skip to the content.

As explained in DAP006, Dapper.AOT can make use of the names in tuple syntax (for example (id: 42, name: "abc")). However, because this represents a change from runtime-only Dapper, we want to be sure that this is what you wanted.

To help clarify your intent, please add [BindTupleByName] or [BindTupleByName(false)] to enable/disable use of name data. Or alternatively, just use an anonymous type instead of a tuple:

Ambiguous (unless BindTupleByNameAttribute is specified):

var data = conn.Query<MyData>("somesql", (id: 42, name: "abc"));

Always clear:

var data = conn.Query<MyData>("somesql", new { id = 42, name = "abc" });