Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架-本地化实体-最佳解决方案?_C#_Entity Framework - Fatal编程技术网

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

C# 实体框架-本地化实体-最佳解决方案?,c#,entity-framework,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]

我正在处理带有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; }
}
解决方案C:
用于商业。Nop可以为每个属性创建键+语言+值的静态资源。这些资源被缓存。表中的行包含资源文件的键。这个实现会导致速度降低吗?

我认为c是最好的解决方案。Nopcommerce通过保持松散耦合来实现这一点,这是最好的方式。

只是好奇——为什么要使用数据库来存储本地化数据?在我看来,您的数据库应该尽可能与文化无关,这就是为什么我们有资源文件。考虑到sesource文件是缓存的,所以一旦被访问,性能影响就可以忽略。谢谢,我将使用解决方案CJust来澄清-在DB中存储翻译并不坏。只要记住,如果你有一个小系统,你就有一个开箱即用的资源。若你们有更大的系统,那个么在数据库中存储翻译将变得困难和有问题。我将构建模块化CMS。我现在看到了nop架构。BlogPost在实体语言ID和公共虚拟语言中的使用。。。。。所以这个表中的每一行都是用一对多语言表本地化的。。。这将提供行中字符串的本地化版本。您可以使用语言参数进行查询。资源用于验证消息、列描述等??我说得对吗?
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; }
}