AttributeCollection LoadAttributes()
        {
            var props = MetaModel.GetTypeDescriptor(Table.EntityType).GetProperties();
            AttributeCollection reflected;

            int propsCount = props == null ? 0 : props.Count;

            if (propsCount == 0)
            {
                reflected = AttributeCollection.Empty;
            }
            else
            {
                var property = props.Find(Name, true);
                if (property == null)
                {
                    reflected = AttributeCollection.Empty;
                }
                else
                {
                    reflected = property.Attributes;
                }
            }

            if (!Provider.Nullable && reflected.OfType <RequiredAttribute> ().Count() == 0)
            {
                reflected = AttributeCollection.FromExisting(reflected, new Attribute[] { new RequiredAttribute() });
            }

            return(reflected);
        }