All data stored was not recognized by a new version of app

55 views
Skip to first unread message

harle...@gmail.com

unread,
Jun 16, 2016, 2:49:18 PM6/16/16
to Siaqodb - NoSQL embedded database for .NET
Hi,

I have an desktop app that uses IsolatedStorage to store SiaqoDB data. (Chat history). 
When i builded a new version of my application keeping the same version of SiaqoDB i need to copy "data.mdb" to the new folder. But when i opened the database file SiaqoDB doesn't find any record inside them.

But if i use same "data.mdb" on old app all recordes are recovered.

I use obfuscation with "EazFuscator".

Any ideas to solve this problem?

Siaqodb Support

unread,
Jun 17, 2016, 1:53:51 AM6/17/16
to Siaqodb - NoSQL embedded database for .NET, harle...@gmail.com
hello there,
EAZFuscator can modify your class names, members, etc. So to make it work you will have to put the following attribute:

 [System.Reflection.Obfuscation(Exclude = true)]

over all of your entities/classes that you store in Siaqodb.

harle...@gmail.com

unread,
Jun 17, 2016, 7:34:22 AM6/17/16
to Siaqodb - NoSQL embedded database for .NET, harle...@gmail.com
Hi,

I tried to put this, but i believe that because my old application was compiled without this the problem not solved.

Is there any way to retrieve raw data from SiaqoDB database without inform any class. If this is possible allow-me to retrieve raw data and perform some kind of processing to put into new database.

Siaqodb Support

unread,
Jun 17, 2016, 7:58:19 AM6/17/16
to Siaqodb - NoSQL embedded database for .NET, harle...@gmail.com
You have 2 options:

1.You can open the database using SiaqodbManager and inspect the data.
2.Use a internal method to open Siaqodb without loading types at runtime:

Siaqodb siaqodb = Sqo.Internal._bs._b("dbpath");//it open Siaqodb without loading runtime Types

List<MetaType> allMetaTypes= siaqodb.GetAllTypes();

foreach(var meta in allMetaTypes)
{
 
List<int> oids = siaqodb.LoadAllOIDs(meta);
 
foreach(int oid in oids)
 
{
 
foreach( MetaField field in meta.Fields)
 
{
     
//load value for each field
     
object value=siaqodb.LoadValue(oid,field.Name,meta);
 
}
 
}
}


However, on 2. be aware that complex/nested objects will not be loaded
Reply all
Reply to author
Forward
0 new messages