protected static DataContext CreateUpdateContext(DomainModel.Spi.DomainModel model, DomainModel.Spi.DomainObject domainObject, object data) { var context = new DataContext(); var dataContextItem = GetModelObjectPropValue(data, domainObject, DataAccessOpType.U, true); context.Add(domainObject.ID, new List <DataContextItem>() { dataContextItem }); if (domainObject.ChildDomainObjects.Count > 0) { foreach (var childModelObject in domainObject.ChildDomainObjects) { var objectList = ObjectPropertyValueUtils.GetCollectionPropValue(childModelObject.PropertyName, data); var items = new List <DataContextItem>(objectList.Count()); foreach (var obj in objectList) { items.Add(GetModelObjectPropValue(obj, childModelObject, DataAccessOpType.U, true)); LoopGetModelObjectPropValue(childModelObject, context, obj, DataAccessOpType.U, true); } context.Add(childModelObject.ID, items); } } return(context); }
private static void LoopGetModelObjectPropValue(DomainModel.Spi.DomainObject domainObject, DataContext context, object data, DataAccessOpType opType, bool isUseDbNull) { if (domainObject.ChildDomainObjects.Count > 0) { foreach (var childModelObject in domainObject.ChildDomainObjects) { var objectList = ObjectPropertyValueUtils.GetCollectionPropValue(childModelObject.PropertyName, data); var items = new List <DataContextItem>(objectList.Count()); foreach (var obj in objectList) { items.Add(GetModelObjectPropValue(obj, childModelObject, opType, isUseDbNull)); } context.Add(childModelObject.ID, items); } } }