/// <summary> /// Adds the data object for exposing with its whole hierarchy. /// </summary> /// <param name="meta">The metadata object.</param> /// <param name="dataObjectType">The type of the data object.</param> private void AddDataObjectWithHierarchy(DataObjectEdmMetadata meta, Type dataObjectType) { // Some base class can be already added. if (meta.Contains(dataObjectType)) { return; } if (dataObjectType == typeof(DataObject)) { var dataObjectTypeSettings = meta[dataObjectType] = new DataObjectEdmTypeSettings() { KeyType = typeof(Guid), EnableCollection = true, CollectionName = EntitySetNameBuilder(dataObjectType) }; // TODO AddProperty(dataObjectTypeSettings, typeof(DataObject).GetProperty(_keyProperty.Name)); return; } Type baseType = dataObjectType.BaseType; Contract.Assume(baseType != null); AddDataObjectWithHierarchy(meta, baseType); var typeSettings = meta[dataObjectType] = new DataObjectEdmTypeSettings { EnableCollection = true, CollectionName = EntitySetNameBuilder(dataObjectType), DefaultView = DynamicView.Create(dataObjectType, null).View }; AddProperties(dataObjectType, typeSettings); if (typeSettings.KeyType != null) { meta[baseType].KeyType = null; } }
public bool IsDataObjectRegistered(Type dataObjectType) { Contract.Requires <ArgumentNullException>(dataObjectType != null); return(_metadata.Contains(dataObjectType)); }