Reshiru.Blazor.IndexedDB.Framework 1.0.1

.NET Standard 2.0
Suggested Alternatives


Install-Package Reshiru.Blazor.IndexedDB.Framework -Version 1.0.1
dotnet add package Reshiru.Blazor.IndexedDB.Framework --version 1.0.1
<PackageReference Include="Reshiru.Blazor.IndexedDB.Framework" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Reshiru.Blazor.IndexedDB.Framework --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Reshiru.Blazor.IndexedDB.Framework, 1.0.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Reshiru.Blazor.IndexedDB.Framework as a Cake Addin
#addin nuget:?package=Reshiru.Blazor.IndexedDB.Framework&version=1.0.1

// Install Reshiru.Blazor.IndexedDB.Framework as a Cake Tool
#tool nuget:?package=Reshiru.Blazor.IndexedDB.Framework&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

NuGet Status

<img src="" height="28px"> Blazor.IndexedDB.Framework

An easy way to interact with IndexedDB and make it feel like EFCore but async.

NuGet installation

PM> Install-Package Reshiru.Blazor.IndexedDB.Framework

Current features

  1. Connect and create database
  2. Add record
  3. Remove record
  4. Edit record

Planned features or optimizations

  1. FK implementation
  2. Optimize change tracker (currently using snapshotting mechanism based using hashes)
  3. Remove PK dependencies from IndexedSet
  4. Versioning (eg. merging database)?

How to use

  1. In your startup.cs file add
services.AddSingleton<IIndexedDbFactory, IndexedDbFactory>();

IIndexedDbFactory is used to create your database connection and will create the database instance for you. IndexedDbFactory requires an instance IJSRuntime, should normally already be registered.

  1. Create any code first database model you'd like to create and inherit from IndexedDb. (Only properties with the type IndexedSet<> will be used, any other properties are beeing ignored)
public class ExampleDb : IndexedDb
  public ExampleDb(IJSRuntime jSRuntime, string name, int version) : base(jSRuntime, name, version) { }
  public IndexedSet<Person> People { get; set; }
  • Your model (eg. person) should contain an Id property or a property marked with the key attribute.
  • Example
public class Person
  public long Id { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  1. Now you can start using your database. (Usage in razor via inject: @inject IIndexedDbFactory DbFactory)

Adding records

using (var db = await this.DbFactory.Create<ExampleDb>())
  db.People.Add(new Person()
    FirstName = "First",
    LastName = "Last"
  await db.SaveChanges();

Removing records

Note: To remove an element it is faster to use a already created reference. You should be able to also remove an object only by it's id but you have to use the .Remove(object) method (eg. .Remove(new object() { Id = 1 }))

using (var db = await this.DbFactory.Create<ExampleDb>())
  var firstPerson = db.People.First();
  await db.SaveChanges();

Modifying records

using (var db = await this.DbFactory.Create<ExampleDb>())
  var personWithId1 = db.People.Single(x => x.Id == 1);
  personWithId1.FirstName = "This is 100% a first name";
  await db.SaveChanges();


Licensed under the MIT license.

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard2.0 netstandard2.1
.NET Framework net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen40 tizen60
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Reshiru.Blazor.IndexedDB.Framework:

Repository Stars
Mission Planner Ground Control Station (c# .net)
Version Downloads Last updated
1.0.1 18,843 7/10/2019
1.0.0 337 7/10/2019