实体框架 - 本地化实体 - 最佳解决方案?

时间:2015-09-14 17:03:36

标签: c# entity-framework

我正在使用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可以使用键+语言+值为每个属性创建静态资源。此资源已缓存。表中的行包含资源文件的密钥。这种实现会导致速度降低吗?

1 个答案:

答案 0 :(得分:0)

我会说c是最好的解决方案。 Nopcommerce通过保持松散耦合来做到最好。