We have just released a new version of Siaqodb (v 5.5.0.10) that supports automatic removal of nested objects when Delete is called! This feature was planned for Q4 of this year, but a few customers mentioned to us that this is a nice feature for them to have, so we moved it up a little.

First, download a copy of Siaqodb 5.5.0.10 to get started with this new feature.
We will start off with a simple example; (note how SiaqodbFactory is now included in the Sqo namespace for ease of use):

public class Company
{
    public string Name { get; set; }
    public string Address { get; set; }
    public string Phone { get; set; }
    public int OID { get; set; }
}
public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime HireDate { get; set; }
    public int Age { get; set; }
    public Company Employer{get;set;}
    public int OID { get; set; }
}
SiaqodbFactory.SetPath(Directory.GetCurrentDirectory());
var siaqodb = SiaqodbFactory.GetInstance();
Company company = new Company();
company.Name = "MyCompany";
Employee employee = new Employee();
employee.FirstName = "John";
employee.LastName = "Walter";
employee.Age = 31;
employee.HireDate = new DateTime(2008, 10, 12);
employee.Employer = company;
//insert will occur and two objects will be inserted, first the company object and then the employee object
siaqodb.StoreObject(employee);
By default, when a parent object is deleted nested objects are not automatically deleted. For example calling:

siaqodb.Delete(employee);

will only delete the Employee. The Company referenced by the Employer property is not deleted. If you do wish to remove nested objects, you can call Delete with an additional parameter:

siaqodb.Delete(employee, true);

This call will automatically remove both the Employee object and the nested Company object (and so forth). As expected, deleting and deleted events will be raied for both objects. Additionally, a transaction may be passed to this version of delete. Nested Lists of objects are also deleted with this call.

Please check out the full release notes for this version on the download page.

We have also significantly improved the overall documentation found on the web site. We are always looking to improve this section of the site, so please let us know if you come across anything that needs more details.


We are already working on the next release of Siaqodb and as always, please feel free send a message to support@siaqodb.com with your needs or thoughts on enhancements. Thank you for your support and happy coding!