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.