SimpleSequel is a lightweight .NET library designed to simplify interaction with databases. It provides intuitive extensions for executing SQL commands and queries and is built on top of ADO.NET.
This library requires .NET 8.
- Fetch and execute from the database with minimal boilerplate code.
- Execute SQL statements directly from string objects.
- Easily convert database rows into .NET objects or specific classes.
- Automatically handles the opening and closing of your database connection as necessary.
Before using SimpleSequel in your project, ensure you have a database that is compatible with ADO.NET, as the library utilizes System.Data.Common.DbConnection
class from the ADO.NET framework for database connections. This step is essential for setting up the library to work seamlessly with your database management system (DBMS).
using SimpleSequel;
// Initialize SimpleSequel with your DBMS connection
SimpleSequelManager.Initialize(DbConnection.Connection);
Below are some examples of how to use SimpleSequel extensions in your .NET applications. For more usage and examples please refer to the tests included in the 'SqlExtensionsTests' project within this repository.
// Execute a statement
"INSERT INTO KeyValueTable VALUES ( 'Gandalf', 'Wizard' )".ExecuteStatement();
// Execute a statement async
await "INSERT INTO KeyValueTable VALUES ( 'Gandalf', 'Wizard' )".ExecuteStatementAsync();
// Execute a command and get a scalar value
var value = "SELECT Value FROM KeyValueTable WHERE Key = 'Gandalf'".ExecuteScalar<int>();
// Execute a command asynchronously and get a scalar value
var valueAsync = await "SELECT Value FROM KeyValueTable WHERE Key = 'Gandalf'".ExecuteScalarAsync<int>();
// Execute a query and get a DbDataReader
DbDataReader reader = "SELECT * FROM KeyValueTable".ExecuteReader();
// Execute a query asynchronously and get a DbDataReader
DbDataReader readerAsync = await "SELECT * FROM KeyValueTable".ExecuteReaderAsync();
class KeyValue
{
public string Key { get; set; }
public string Value { get; set; }
}
// Execute and get only first row as custom object
KeyValue keyValue = "SELECT * FROM KeyValueTable ORDER BY Key".ExecuteClass<KeyValue>();
- Add XML documentation comments
- Complete support for both synchronous and asynchronous operations
- Implement logging
- Complete CRUD operations for ORM
- Implement methods using DbParameters to prevent SQL Injections
This project is licensed under the MIT License. See the LICENSE file for more details.