public class Product
{
public string Code { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class Product
{
public string Code { get; set; }
[NotMapped]
public string Name
{
get => Translations[CultureInfo.CurrentCulture].Name ?? Translations.FirstOrDefault()?.Name;
set => Translations[CultureInfo.CurrentCulture].Name = value;
}
[NotMapped]
public string Description
{
get => Translations[CultureInfo.CurrentCulture].Description ?? Translations.FirstOrDefault()?.Description;
set => Translations[CultureInfo.CurrentCulture].Description = value;
}
public virtual TranslationCollection<ProductTranslation> Translations { get; set; } = new TranslationCollection<ProductTranslation>();
}
/// <summary>
/// Translations for Product
/// </summary>
public class ProductTranslation : Translation<ProductTranslation>
{
public int ProductId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>()
.HasMany(n => n.Translations)
.WithRequired()
.HasForeignKey(n => n.ProductId)
.WillCascadeOnDelete();
base.OnModelCreating(modelBuilder);
}