You did not specify what database you want to use, if you need only one data file per user you can use
LiteDB[
^]
An example from
Getting Started - LiteDB :: A .NET embedded NoSQL database[
^]:
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string[] Phones { get; set; }
public bool IsActive { get; set; }
}
using(var db = new LiteDatabase(@"C:\Temp\MyData.db"))
{
var col = db.GetCollection<Customer>("customers");
var customer = new Customer
{
Name = "John Doe",
Phones = new string[] { "8000-0000", "9000-0000" },
IsActive = true
};
col.Insert(customer);
customer.Name = "Jane Doe";
col.Update(customer);
col.EnsureIndex(x => x.Name);
var results = col.Query()
.Where(x => x.Name.StartsWith("J"))
.OrderBy(x => x.Name)
.Select(x => new { x.Name, NameUpper = x.Name.ToUpper() })
.Limit(10)
.ToList();
col.EnsureIndex(x => x.Phones);
var r = col.FindOne(x => x.Phones.Contains("8888-5555"));
}
Btw: LiteDB also supports Portable UWP and Xamarin iOS/Android applications.