UskokDB 2.0.0
.NET 6.0
This package targets .NET 6.0. The package is compatible with this framework or higher.
.NET Standard 2.0
This package targets .NET Standard 2.0. The package is compatible with this framework or higher.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package UskokDB --version 2.0.0
NuGet\Install-Package UskokDB -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="UskokDB" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add UskokDB --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: UskokDB, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install UskokDB as a Cake Addin
#addin nuget:?package=UskokDB&version=2.0.0
// Install UskokDB as a Cake Tool
#tool nuget:?package=UskokDB&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
UskokDB
A simple C# ORM which adds extension methods on IDbConnection and DbConnection interfaces
Quering
Lets supose we have a model specified like:
class Person
{
public string Name { get; set; }
public string LastName { get; set; }
}
//Getting a connection instance from some factory
IDbConnection connection = SomeConnectionFactory.CreateConnection();
Sync quering
List<dynamic> people = connection.Query("Select * From people Where name=@Name", new {
Name = "Vuk"
})
List<Person> people = connection.Query<Person>("Select * From people Where name=@Name", new {
Name = "Vuk"
})
dynamic person = connection.QuerySingle("Select * From people Where name=@Name", new {
Name = "Vuk"
})
Person person = connection.QuerySingle<Person>("Select * From people Where name=@Name", new {
Name = "Vuk"
})
Async Quering
List<dynamic> people = await connection.QueryAsync("Select * From people Where name=@Name", new {
Name = "Vuk"
})
List<Person> people = await connection.QueryAsync<Person>("Select * From people Where name=@Name", new {
Name = "Vuk"
})
dynamic person = await connection.QuerySingleAsync("Select * From people Where name=@Name", new {
Name = "Vuk"
})
Person person = await connection.QuerySingleAsync<Person>("Select * From people Where name=@Name", new {
Name = "Vuk"
})
IParamterConverter
The ParameterHandler
class has a static dictionary Dictionary<Type, IParamterConverter> ParamterConverters
which is used as a map to create db values from custom types the prime example of this is Guid
demostrated here
[typeof(Guid)] = new DefaultParamterConverter<Guid, string>((guid) => guid.ToString(), Guid.Parse, Guid.Empty.ToString().Length)
The DefaultParamterConverter
takes in a function of when writing to a database and a function when reading it along side with the int? maxLength
and string? typeName
, maxLength is used to determine the max length in case the writen type is string in which case this is and it is Guid.Empty.ToString().Length
and typeName is used in the extension library UskokDB.MySql
to know what type should be written in case of a for example DateTime
this parameter would be DATETIME
.
Note! Primtive types cannot be changed (int, uint, char, bool, short, ushort, enums, etc...)
IParamterConverter
is used for the type Guid
so that the model can be represented like this
class Person
{
public Guid Id;
public string Name;
public string LastName;
}
This can be just any type so lets create an exampel
//This is a kind of dumb example but shows the way it used
const int MaxNameLength = 20;
class NameClass
{
public string Value;
}
class Person
{
public Guid Id;
public NameClass Name;
public NameClass LastName;
}
ParameterHandler.ParamterConverters[typeof(NameClass)] = new DefaultParamterConverter<NameClass, string>(nameClass => nameClass.Value, (str) => new NameClass { Value = str }, MaxNameLength)
Column Attribute
You can use the column attribute in order to specify a name for a certian property ad here is an example of this
class Person {
[Column("name")]
public string FullName {get; set;}
}
Person p = connection.QuerySingle<Person>("Select * From people where name='Somename'")
As you can see the column name in the table is name but we can still name the property as we wish as long as we specify the actuall name of the column with the attribute
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- Microsoft.CSharp (>= 4.7.0)
- System.Dynamic.Runtime (>= 4.3.0)
- System.Memory (>= 4.5.5)
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on UskokDB:
Package | Downloads |
---|---|
UskokDB.MySql
MySql helper for UskokDB |
GitHub repositories
This package is not used by any popular GitHub repositories.
Added json support.