Closed ivancas84 closed 1 year ago
Se definió inicialmente el siguiente "extension method", pero ¿No deberia ser un método de EntityValues?. Como entityValues ya posee el entityName y fieldId, se podria definir por ejemplo algo como EntityValues v > v.ParentVariables(mainEntityName);
public static (string? fieldId, string fieldName, string entityName, object? value) RedefinePersistenceVariables(string fieldId, string mainEntityName, EntityValues v) { object? value = null; string entityName = ""; string fieldName = "";
string? parentId = ContainerApp.db.Entity(mainEntityName).relations[fieldId].parentId;
if (parentId != null)
{
//sea por ejemplo alumnoT.personaF (con fieldId alumno) = personaT.id (con fieldId = persona), entones:
//parentFieldName = personaF
//value = personaValues.values["id"]
//fieldId = alumno
//fieldName = personaF
//entityName = alumnoT
string parentFieldName = ContainerApp.db.Entity(mainEntityName).relations[fieldId].fieldName;
value = v.values[ContainerApp.db.Entity(mainEntityName).relations[fieldId].refFieldName];
fieldId = parentId;
fieldName = parentFieldName;
entityName = ContainerApp.db.Entity(mainEntityName).relations[parentId].refEntityName;
}
else
{
entityName = mainEntityName;
fieldName = ContainerApp.db.Entity(mainEntityName).relations[fieldId].fieldName;
value = v.values[ContainerApp.db.Entity(mainEntityName).relations[fieldId].refFieldName];
fieldId = null;
}
return (fieldId, fieldName, entityName, value);
}
Se incorporó EntityValues.ParentVariables y un extension method para obtener el key y value.