private void SaveTag(T entity, ITag tag) { if (entity == null || tag == null) { return; } var entityId = cache.GetId(entity); if (entityId == 0) { return; } var id = cache.GetId(tag); if (id > 0) { database.SaveTag(this, id, tag, entityId); } else { id = database.CreateTag(this, tag, entityId); cache.Add(id, entity, tag); } }