string sql = "SELECT * FROM Invoices WHERE CustomerID = @CustomerID"; using (var conn = My.ConnectionFactory()) { var invoices = conn.Query<Invoice>(sql, new { customerID} ); }
Yes and no! People are still arguing about it. Dapper has earned the title of king of the C# Micro ORM but is considered by multiple people as a simple object mapper for .NET.
Yes and no! People will prefer Dapper when they want to write the SQL query themselves with optimal performance. See a Dapper vs EF Core comparisons
Yes, it's 100% safe if you use parametrized queries as you should always do!
No, but a popular third-party library does: Dapper Plus. It's a good example of Dapper's extensibility.
Learn MoreProbably yes since Dapper provides extensions to the IDbConnection interface. It's your job to write the SQL compatible with your database provider.
Yes, Dapper supports transactions both within a TransactionScope and through use of an optional parameter.