|
|
|
|
@ -20,7 +20,7 @@ LiveDataMsg msg1 = null; |
|
|
|
|
Realm GetDB() |
|
|
|
|
{ |
|
|
|
|
var cfg = new RealmConfiguration("c:/prjs/realm_test.realm"); |
|
|
|
|
cfg.SchemaVersion = 4; |
|
|
|
|
cfg.SchemaVersion = 6; |
|
|
|
|
return Realm.GetInstance(cfg); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -177,8 +177,8 @@ async Task InsertLiveData() |
|
|
|
|
//item.PropertyChanged += PropChanged; |
|
|
|
|
// item.ItemId = i; |
|
|
|
|
// item.ValueLabel = item.Val.ToString(); |
|
|
|
|
var db = GetDB(); |
|
|
|
|
for (var i = 0; i != 10000; ++i) |
|
|
|
|
using var db = GetDB(); |
|
|
|
|
for (var i = 0; i != 100; ++i) |
|
|
|
|
{ |
|
|
|
|
var item = new LiveData() {ItemId = i, EcuId = 0, Val = new Random().NextSingle()*i}; |
|
|
|
|
db.Write(() => |
|
|
|
|
@ -207,6 +207,67 @@ async Task<LiveData> QueryLiveData() |
|
|
|
|
Console.WriteLine($"{(DateTime.Now - b).TotalSeconds} secs"); |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async Task UpsertLiveData() |
|
|
|
|
{ |
|
|
|
|
var b = DateTime.Now; |
|
|
|
|
//for (var i = 0; i != 100; ++i) |
|
|
|
|
//{ |
|
|
|
|
// var item = new LiveData() {ItemId = i, EcuId = 0, Val = new Random().NextSingle()*i}; |
|
|
|
|
//item.PropertyChanged += PropChanged; |
|
|
|
|
// item.ItemId = i; |
|
|
|
|
// item.ValueLabel = item.Val.ToString(); |
|
|
|
|
using var db = GetDB(); |
|
|
|
|
for (var i = 0; i != 100; ++i) |
|
|
|
|
{ |
|
|
|
|
db.Write(() => |
|
|
|
|
{ |
|
|
|
|
var obj = db.All<LiveData>().First(i1 => i1.ItemId == i); |
|
|
|
|
obj.Val = i * 2; |
|
|
|
|
db.Add(obj, update: true); |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (var i = 0; i != 100; ++i) |
|
|
|
|
{ |
|
|
|
|
Console.WriteLine(db.All<LiveData>().First(i1=>i1.ItemId==i)); |
|
|
|
|
} |
|
|
|
|
Console.WriteLine($"insert needs {(DateTime.Now - b).TotalSeconds} secs"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void TestLink() |
|
|
|
|
{ |
|
|
|
|
using var db = GetDB(); |
|
|
|
|
/* |
|
|
|
|
db.Write(() => |
|
|
|
|
{ |
|
|
|
|
var grp = new EcuGroupCfg() {Id = "g1", Name="group1"}; |
|
|
|
|
var ecu1 = new EcuCfg() {Id = "e1", Name = "ecu1", IsLiving = false}; |
|
|
|
|
db.Add(ecu1, update:true); |
|
|
|
|
grp.Ecus.Add(ecu1); |
|
|
|
|
grp.Ecus.Add(new EcuCfg() {Id="e2", Name="ecu2", IsLiving = false}); |
|
|
|
|
db.Add(grp, update: true); |
|
|
|
|
}); |
|
|
|
|
*/ |
|
|
|
|
using var db1 = GetDB(); |
|
|
|
|
db1.Write(() => |
|
|
|
|
{ |
|
|
|
|
var obj = db.All<EcuCfg>().FirstOrDefault(i => i.Id == "e2"); |
|
|
|
|
obj.IsLiving = true; |
|
|
|
|
}); |
|
|
|
|
using var db3 = GetDB(); |
|
|
|
|
var res = db3.All<EcuGroupCfg>().Filter("ANY Ecus.IsLiving ==$0", true).FirstOrDefault(); |
|
|
|
|
Console.WriteLine(res.Name); |
|
|
|
|
/* |
|
|
|
|
var res1 = BsonTools.Clone(res); |
|
|
|
|
res1.Name = "test"; |
|
|
|
|
db3.Write(() => |
|
|
|
|
{ |
|
|
|
|
db.Add(res1, update: true); |
|
|
|
|
}); |
|
|
|
|
*/ |
|
|
|
|
} |
|
|
|
|
TestLink(); |
|
|
|
|
/* |
|
|
|
|
using (var db = GetDB()) |
|
|
|
|
{ |
|
|
|
|
@ -223,12 +284,15 @@ using (var db = GetDB()) |
|
|
|
|
//var t1 = ProduceAsync(); |
|
|
|
|
//var t2 = ConsumeAsync(); |
|
|
|
|
//Task.WaitAll(t1, t2); |
|
|
|
|
/* |
|
|
|
|
using (var ctx = new AppDbContext()) |
|
|
|
|
{ |
|
|
|
|
ctx.Database.EnsureCreated(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//using (var ctx = new AppDbContext()) |
|
|
|
|
//{ |
|
|
|
|
//ctx.Database.EnsureCreated(); |
|
|
|
|
// ctx.Database.Migrate(); |
|
|
|
|
//} |
|
|
|
|
//InsertLiveData(); |
|
|
|
|
//await UpsertLiveData(); |
|
|
|
|
/* |
|
|
|
|
var b = DateTime.Now; |
|
|
|
|
|
|
|
|
|
var builder = new DbContextOptionsBuilder<AppDbContext>(); |
|
|
|
|
@ -295,6 +359,7 @@ using (var db = GetDB()) |
|
|
|
|
} |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
async Task OnMappingFailed(IHttpContext context, MappedResourceInfo? info) |
|
|
|
|
{ |
|
|
|
|
context.Redirect("/"); |
|
|
|
|
@ -316,4 +381,5 @@ using (var server = new WebServer(HttpListenerMode.EmbedIO, "http://*:9090")) |
|
|
|
|
{ |
|
|
|
|
Debug.WriteLine(ex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
*/ |