Incluindo Novas Entradas na Coleção de Propriedades de Navegação da Entidade

Preciso criar uma maneira genérica de adicionar entradas de idiomas ausentes a todas as entidades nas quais implementa uma interface específica. Descobri como obter minha propriedade de coleção, mas ainda não seicomo adicionar novos valores antes prossiga para salvar.

Seguindo um pedaço do meupublic override int SaveChanges() tratamento.

foreach (var translationEntity in ChangeTracker.Entries(<ITranslation>))
{
    if (translationEntity.State == EntityState.Added)
    {
        var translationEntries = translationEntity.Entity.GetType()
                                .GetProperties(BindingFlags.Public | BindingFlags.Instance)
                                .Where(x => x.CanWrite &&
                                x.GetGetMethod().IsVirtual &&
                                x.PropertyType.IsGenericType == true &&
                                typeof(IEnumerable<ILanguage>).IsAssignableFrom(x.PropertyType) == true);

        foreach (var translationEntry in translationEntries)
        {
            //Add missing items.
        }
    }
}

Amostras de código de classes

public partial class FileType : ITranslation
{
    public long FileTypeId { get; set; }
    public string AcceptType { get; set; }

    public virtual ICollection<FileTypeTranslation> FileTypeTranslations { get; set; }

    public FileType()
    {
        this.FileTypeTranslations = new HashSet<FileTypeTranslation>();
    }
}

public class FileTypeTranslation : EntityTranslation<long, FileType>, ILanguage
{
    [Required]
    public string TypeName { get; set; }
}


public partial class ElementType : ITranslation
{
    public long ElementTypeId { get; set; }
    public string Code { get; set; }

    public virtual ICollection<ElementTypeTranslation> ElementTypeTranslations { get; set; }

    public ElementType()
    {
        this.ElementTypeTranslations = new HashSet<FileTypeTranslation>();
    }
}

public class ElementTypeTranslation : EntityTranslation<long, ElementType>, ILanguage
{
    [Required]
    public string Description { get; set; }
}

questionAnswers(1)

yourAnswerToTheQuestion