/// <summary> /// Remove navigation properties defined on derived types /// </summary> /// <param name="model">The model to fix up</param> public void Fixup(EntityModelSchema model) { foreach (var function in model.Functions.ToList().Where(f => f.Annotations.OfType<ServiceOperationAnnotation>().Any(so => so.IsAction))) { model.Remove(function); } }
/// <summary> /// Remove bags and corresponding features in model for EF provider /// </summary> /// <param name="model">The model to fix up</param> public void Fixup(EntityModelSchema model) { foreach (var namedStructuralType in model.ComplexTypes.OfType<NamedStructuralType>().Concat(model.EntityTypes.OfType<NamedStructuralType>())) { foreach (var bag in namedStructuralType.Properties.Where(p => p.PropertyType.HasCollection())) { var collectionType = bag.PropertyType as CollectionDataType; bag.PropertyType = collectionType.ElementDataType; } } foreach (var function in model.Functions.ToArray().Where(f => f.ReturnType != null && f.ReturnType.HasCollection())) { model.Remove(function); } foreach (var function in model.Functions.ToArray().Where(f => f.Parameters.Any(p => p.DataType.HasCollection()))) { model.Remove(function); } }
/// <summary> /// Remove spatial properties and functions /// </summary> /// <param name="model">The model to fix up</param> public void Fixup(EntityModelSchema model) { foreach (var structuralType in model.EntityTypes.OfType<NamedStructuralType>().Concat(model.ComplexTypes.OfType<NamedStructuralType>())) { foreach (var spatialProperty in structuralType.Properties.ToArray().Where(p => p.PropertyType.IsSpatial())) { structuralType.Properties.Remove(spatialProperty); } } foreach (var function in model.Functions.ToList().Where(f => (f.ReturnType != null && f.ReturnType.IsSpatial()) || f.Parameters.Any(p => p.DataType.IsSpatial()))) { model.Remove(function); } }