public Guid SaveNew(IItem item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } var actualItem = item as DefaultItem; if (actualItem == null) { throw new ArgumentException($"Unknown item type: '{item.GetType().Name}'", nameof(item)); } var guid = provider.Insert(actualItem.Type.Name, actualItem.GetEntity()); var relations = new KeyValuePair <Guid, string>(item.Parent.Guid, item.Parent.Type.Name); provider.InsertItemRelations(item.Parent.Type.Name, item.Parent.Guid, new[] { relations }, CHILDREN_MAPPING_TABLE_NAME, true); return(guid); }