public CodeModelPropertyMetadata(CodeProperty property) { if (property == null) { throw new ArgumentNullException("property"); } base.PropertyName = property.Name; base.TypeName = property.Type.AsFullName; base.ShortTypeName = property.Type.AsString; base.IsPrimaryKey = CodeModelPropertyMetadata.IsPropertyPrimaryKey(property); base.IsAutoGenerated = base.IsPrimaryKey; base.IsReadOnly = !CodePropertyExtensions.HasPublicSetter(property); base.Scaffold = CodeModelPropertyMetadata.IsScaffoldColumn(property); }
private static IList <PropertyMetadata> GetModelProperties(CodeType codeType) { IList <PropertyMetadata> propertyMetadatas = new List <PropertyMetadata>(); foreach (CodeProperty codeProperty in CodeTypeExtensions.GetPublicMembers(codeType).OfType <CodeProperty>()) { if (!CodePropertyExtensions.HasPublicGetter(codeProperty) || CodePropertyExtensions.IsIndexerProperty(codeProperty) || !CodeModelModelMetadata.IsBindableType(codeProperty.Type)) { continue; } propertyMetadatas.Add(new CodeModelPropertyMetadata(codeProperty)); } return(propertyMetadatas); }