Хранение информации о сущности в нескольких языках[EF]
Хочу добавить поддержку нескольких языков(пока en/ru) для некоторых сущностей. Сущность - таблица в EF. Одно из требований - легкое добавление информации на новом языке. Погуглил и пока единственное что нашел(на англ ветке) следующий пример.
Например, есть api с информацией о фильмах. Для данного api рассмотрим следующие таблицы:
- Language - язык
- Movie - общая информация о фильме, которая одинаковая для всех языков - связи, целочисленные/вещественные и прочие данные(кроме строк)
- TranslatedMovie - переведенная информация о фильме на каждом языке(описание, слоган и.т.п)
В качестве субд использую postgresql.
public class Language
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
[InverseProperty("Language")]
public ICollection<TranslatedMovie> TranslatedMovies{ get; set; }
}
public class Movie
{
public Guid Id { get; set; }
public int Budget { get; set; } //Информация одинаковая для всех языков
public ICollection<TranslatedMovie> TranslatedMovies { get; set; }
public Movie()
{
TranslatedMovies = new List<TranslatedMovie>();
}
}
public class TranslatedMovie
{
public Guid ProfileId { get; set; }
public Profile Profile { get; set; }
[ForeignKey("Language")]
public int LanguageId { get; set; }
public Language Language { get; set; }
public string Description { get; set; } //Для каждого языка разная информация
//В данном случае это описание
}
Оптимальное ли это решение или есть лучше?