public override Property Parse(ClassInfo clazz, XElement element) { var prop = base.Parse(clazz, element); var compositeId = new CompositeId(clazz, prop.Name); compositeId.AddAttributes(prop); compositeId.Remove("class"); element.Elements().Where(x => x.Name.LocalName == "key-many-to-one").ToList() .ForEach(key => compositeId.ManyToOneKeys.Add(base.Parse(clazz, key))); element.Elements().Where(x => x.Name.LocalName == "key-property").ToList() .ForEach(key => compositeId.PropertyKeys.Add(ParseKeyProperty(clazz, key))); return(compositeId); }
/// <inheritdoc /> public object ToDatabaseValue(object modelObject) { CompositeId id = (CompositeId)modelObject; return($"{id.Fragment1}.{id.Fragment2}"); }