我有一个中央表来处理翻译,许多实体可能都有翻译的集合。我首先使用EF 6.0代码。 为避免每个实体EF在转换表中生成外键,为避免这种情况,我决定添加3列:TableName,ColumnName和EntityKey指向给定的表。
public class CurrencyModel
{
// more staff here
public ICollection<TranslationModel> Translations {get; set; }
}
public class CityModel
{
// more staff here
public ICollection<TranslationModel> Translations {get; set; }
}
public class CountryModel
{
// more staff here
public ICollection<TranslationModel> Translations {get; set; }
}
public class CategoryModel
{
// more staff here
public ICollection<TranslationModel> Translations {get; set; }
}
如何强制EF不要为每个表生成外键? 预先感谢您的帮助
答案 0 :(得分:0)
在创建和添加迁移后以及更新数据库之前,您应该使用流利的api,转到DbContext类并检查OnModelCreating方法,在此方法中,您可以在某些方法上看到.HasForeignKey(e => e ....)您的实体.. 您可以在OnModelCreating方法中覆盖EF约定,并强制它例如不为每个表生成外键。