I want to store my entity classes' properties' values as extra if occurred any error. What is the best practises to do this ? I thought, getting values by reflection and write them to database is a good solution but then It creates another question. How can I reach all values including Collections' values, in other words children objects' values. I have tried to reach by using reflection but I stucked,failed. If my solution is wrong, I am open to any suitable solutions, suggestions :)

For example :

```
public class Author : BaseEntity
{

    /// <summary>
    /// Gets or sets a value indicating the author's name
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// Gets or sets a value indicating the author's surname
    /// </summary>
    public string Surname { get; set; }

    /// <summary>
    /// Gets or sets a value indicating the author's birthdate
    /// </summary>
    public DateTime BirthDate { get; set; }

    /// <summary>
    /// Gets or sets a value indicating the author's death of date
    /// </summary>
    public DateTime DeathDate { get; set; }

    /// <summary>
    /// Gets or sets a value indicating rating entity
    /// </summary>
    public virtual AuthorRating Rating { get; set; }

    /// <summary>
    /// Gets or sets a value indicating idenitifier of the author's nationality
    /// </summary>
    public int NationalityId { get; set; }

    /// <summary>
    /// Gets or sets a value indicating the author's nationality
    /// </summary>
    public virtual Nation Nationality { get; set; }

    /// <summary>
    /// Gets or sets the collection of votes
    /// </summary>
    public virtual ICollection<AuthorVote> HavingVotes { get; set; }

    /// <summary>
    /// Gets or sets the collection of quotes which he/she said
    /// </summary>
    public virtual ICollection<Quote> OwnQuotes { get; set; }

    /// <summary>
    /// Gets or sets the collection of favourited rows by user
    /// </summary>
    public virtual ICollection<UserFavouriteAuthor> Favouriteds { get; set; }

}

```

For example, How can I reach Author.Qutes.QuoteVotes class and their values and their childrens recursively by using reflection ?