private IEnumerable <Map> GetDefaultMaps(AutoMappingOption option)
        {
            List <Map> maps = new List <Map>();

            foreach (PropertyInfo prop in typeof(T).GetProperties())
            {
                if (prop.IsDefined(typeof(NotMappedAttribute)))
                {
                    continue;
                }
                if (option == AutoMappingOption.UseNonObjectPropertyMaps && (prop.Name.EndsWith("_Object") || prop.Name.EndsWith("_Objects")))
                {
                    continue;
                }
                if (prop.GetMethod != null && prop.GetMethod.IsPublic &&
                    prop.SetMethod != null && prop.SetMethod.IsPublic)
                {
                    maps.Add(new Map(prop.Name));
                }
            }
            return(maps);
        }
 /// <summary>
 /// Initialize a new entity map
 /// </summary>
 /// <param name="tableName">Name of the table in the database</param>
 /// <param name="entityMapOption">Automapping option will enable automatically mapping properties to a column of the same name unless overidden.</param>
 public EntityMap(string tableName, AutoMappingOption entityMapOption = AutoMappingOption.None)
 {
     TableName       = tableName;
     EntityMapOption = entityMapOption;
 }