我正在使用EF7本地化处理ASP.NET vNext项目。我知道如何提供将存储在数据库中的本地化数据。请问,什么是最好的解决方案? A,B还是C?还是存在一些更好的?
解决方案A:
public class BaseEntity
{
[Key]
public Guid Id { get; set; }
public BaseEntityModel()
{
this.Id = new Guid();
}
[Required]
public virtual Language Language { get; set; }
public virtual ICollection<BaseEntity> Translations { get; set; }
}
public class Language
{
public Guid Id { get; set; }
[StringLength(8)]
public string Code { get; set; } // Unique
public string Name { get; set; }
}
解决方案B: (使用复合键 - RowId和languageID)就像这样...
public class BaseEntity
{
[Key, Column(Order = 0)]
public Guid Id { get; set; }
public BaseEntityModel()
{
this.Id = new Guid();
}
[Key, Column(Order = 1)]
public Guid LanguageId { get; set; }
[Required]
public virtual Language Language { get; set; }
}
解决方案C: 由NopCommerce使用。 Nop可以使用键+语言+值为每个属性创建静态资源。此资源已缓存。表中的行包含资源文件的密钥。这种实现会导致速度降低吗?
答案 0 :(得分:0)
我会说c是最好的解决方案。 Nopcommerce通过保持松散耦合来做到最好。