我有一张保存翻译数据的表。每行都有EntityID
和EntityType
,以便知道此转换是针对哪个实体的。
翻译表
如果entityTypeId = 1
就是一部Film.id = entityId
的电影
如果entityTypeId = 2
是具有Car.id = entityId
等的汽车。
我正在使用EntityFramework
Core(代码优先),我希望得到这个结果。在我的实体中,我包括以下内容:
公共虚拟IList转换{组; }
因此,EF为我的每个实体创建了列,这很正常,但不是我想要的。
EF创建的翻译表
有什么办法可以做到这一点?
代码 电影桌
[Table("Film")]
public class Film
{
[Key]
[Required]
public Guid ID { get; set; }
[Required]
public int Points { get; set; }
public IList<Translation> Translations { get; set; }
}
汽车桌子
[Table("Car")]
public class Car
{
[Key]
[Required]
public Guid ID { get; set; }
[Required]
public int Doors { get; set; }
public IList<Translation> Translations { get; set; }
}
翻译表
[Table("Translation")]
public class Translation
{
[Key]
[Required]
public Guid ID { get; set; }
[Required]
public Guid EntityId { get; set; }
[Required]
public Guid EntityTypeId { get; set; }
[StringLength(100)]
[Required]
public string Title { get; set; }
[StringLength(100)]
public string Name { get; set; }
[StringLength(500)]
public string Description { get; set; }
[Required]
public Guid LanguageId { get; set; }
public Language Language { get; set; }
public EntityType EntityType { get; set; }
}
此外,我可能会为汽车或电影提供多个翻译