Kuery 0.0.4
dotnet add package Kuery --version 0.0.4
NuGet\Install-Package Kuery -Version 0.0.4
<PackageReference Include="Kuery" Version="0.0.4" />
paket add Kuery --version 0.0.4
#r "nuget: Kuery, 0.0.4"
// Install Kuery as a Cake Addin #addin nuget:?package=Kuery&version=0.0.4 // Install Kuery as a Cake Tool #tool nuget:?package=Kuery&version=0.0.4
Kuery
Simple ORM for .NET
Install
Install Kuery from NuGet.
Usage
The library contains simple attributes that you can use to control the construction of tables. In a simple todo program, you might use:
[Table("todo")]
public class Todo
{
[PrimaryKey]
[Column("id")]
[AutoIncrement]
public int Id { get; set; }
[NotNull]
[Column("name")]
public string Name { get; set; }
[Column("description")]
public string Description { get; set; }
[NotNull]
[Column("done")]
public bool IsDone { get; set; }
[NotNull]
[Column("created_at")]
public DateTimeOffset CreatedAt { get; set; }
[NotNull]
[Column("updated_at")]
public DateTimeOffset UpdatedAt { get; set; }
}
Synchronous API
You can insrt rows in the database using Insert
.
If the table contains an auto-incremented primary key,
then the value for that key will be available to you after the insert:
var todo =new Todo()
{
Name = "Study English",
Description = "Study English Everyday",
CreatedAt = DateTimeOffset.Now,
UpdatedAt = DateTimeOffset.Now,
});
using SqliteConnection connection = new SqliteConnection("Your connection string");
connection.Open();
connection.Insert(todo);
Similar methods exist for Update
and Delete
.
The most straightforward way to query for data is using the Table
method.
This can take predicates for constraining via WHERE clauses and/or adding ORDER BY clauses:
List<Todo> todos = connection.Table<Todo>()
.Where(x => x.Name == "Study English")
.ToList();
Asynchronous API
You can insert rows in the database using InsertAsync
.
If the table contains an auto-incremented primary key,
then the value for that key will be available to after the insert:
var todo =new Todo()
{
Name = "Study English",
Description = "Study English Everyday",
CreatedAt = DateTimeOffset.Now,
UpdatedAt = DateTimeOffset.Now,
});
using SqliteConnection connection = new SqliteConnection("Your connection string");
await connection.OpenAsync();
await connection.InsertAsync(todo);
Simillar methods exist for UpdateAsync
and DeleteAsync
.
Querying for data is most straightforwardly done using the Table
method.
This will return an AsyncTableQuery
instance back,
whererupon you can add predicates for constraining via WHERE clauses and/or adding ORDER BY.
The database is not physically touched until one of the special retrieval
methods - ToListAsync
, FirstAsync
, or FirstOrDefaultAsync
- is called.
List<Todo> todos = await connection.Table<Todo>()
.Where(x => x.Name == "Study English")
.ToListAsync();
Manual SQL
using SqliteConnection connection = new SqliteConnection("Your connection string");
connection.Open();
IEnumerable<Todo> todos = connection.Query<Todo>(
"SELECT * FROM todo WHERE name = $name",
new { name = "Study English" });
Contribution
- Fork it ( http://github.com/tnakamura/Kuery )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
License
Author
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.