Entity framework 4 实体框架4如何实现多元化?

Entity framework 4 实体框架4如何实现多元化?,entity-framework-4,Entity Framework 4,在阅读一篇关于EF4的文章时,我读到EF对某些对象(EntitySet、导航指向EntityCollection等)进行复数化,而对其他对象使用单数形式。出于好奇-它是如何做到这一点的?它使用内置字典吗 谢谢 ScottMicrosoft在.NET framework中添加了一个PluralizationService基本抽象类,该类也可用于其他目的 public abstract class PluralizationService { public static Plur

在阅读一篇关于EF4的文章时,我读到EF对某些对象(EntitySet、导航指向EntityCollection等)进行复数化,而对其他对象使用单数形式。出于好奇-它是如何做到这一点的?它使用内置字典吗

谢谢


Scott

Microsoft在.NET framework中添加了一个
PluralizationService
基本抽象类,该类也可用于其他目的

public abstract  class PluralizationService
{ 
        public static PluralizationService CreateService(CultureInfo culture);

        public abstract string Pluralize(string word);
        public abstract string Singularize(string word);
} 
请看一篇非常详细的博客文章。微软以不同的语言/文化提供了该服务的一些具体实现,但您完全可以自由地使用自己的语言/文化


我不知道EF4提供的多元化服务是如何工作的,但很可能是某些语言规则和大量不同处理的例外的组合。这些很可能存储为资源或以其他方式存储在相关程序集中。

哇,太酷了!还有一个问题-他们为什么选择抽象基类?我认为编程到接口比构建继承层次结构更可取?我没有参加设计会议:-),但抽象基类可以实现所有后代都将继承的一些基本行为-你不能用接口做到这一点。也许他们有这样做的理由-不确定。根据“C#4.0简而言之”的说法,“抽象成员与虚拟成员类似,只是它们不提供默认实现。除非该子类也声明为抽象,否则该实现必须由该子类提供。”区别是希望指定静态成员(如上所述)?