Dynamics
CRUD against a literal table name and anonymous objects, for the calls that don't warrant a full entity model.
What it is
Every operation has an overload that takes a table name as a plain string and an anonymous object, dictionary, or ExpandoObject in place of an entity type — useful for one-off scripts, admin tooling, or tables you don’t want to model.
Querying and writing
var customer = connection.Query("[dbo].[Customer]", 10045).FirstOrDefault();
var id = connection.Insert<int>("[dbo].[Customer]", new
{
FirstName = "John",
LastName = "Doe"
});
Iterating the results
Rows come back as an enumerable of ExpandoObject, so there’s no compile-time shape to lean on — you trade that safety for not having to define a class at all.