【问题标题】:Why does entity framework pluralize and capitalize entity class names?为什么实体框架要复数和大写实体类名?
【发布时间】:2011-03-27 12:27:54
【问题描述】:

为什么实体框架默认将所有类名复数,首字母大写?这样做有什么好处?可能是个愚蠢的问题……但只是出于好奇?

【问题讨论】:

  • 复数化可以关闭。这是默认设置,但您可以根据需要调整设置。

标签: entity-framework-4 pluralize capitalize


【解决方案1】:

.NET 样式指南规定所有类名都应采用 CamelCase。

我不知道复数,它不是复数单个实体对象,是吗?不过,对于集合来说是有意义的。

【讨论】:

    【解决方案2】:

    .NET Design Guidelines for Developing Class LibrariesCapitalization Conventions 部分中,它声明所有类名都应该是Pascal 大小写,它定义为:

    "标识符中的第一个字母 和每个的第一个字母 随后的连接词是 大写。您可以使用帕斯卡案例 对于三个或更多的标识符 人物。例如:

    背景色"

    至于复数,我发现当您使用实体框架模型设计器的默认设置时,您会得到相反的结果。它将复数表名称转换为其单数等效项。例如,使用 Northwind 数据库并使用默认设置,我发现设计器会将 Products 表更改为名为 Product 的类,并将 Categories 表更改为名为 Category 的类。这是有道理的,因为对象的单个实例将是 Product 而不是 Products

    如果你得到相反的效果,那么我很困惑。但是,请查看 Dan Rigsby 的这篇文章 - Entity Framework 4.0: Pluralization,它或许可以解释正在发生的事情。

    【讨论】:

      【解决方案3】:

      你应该单数化一个类和复数化一个集合。例如,这是由 ef 完成单数化和复数化的地方

      var 客户 = 新客户{}; //单一类 db.Customers.AddObject(客户); ObjectSEt 是复数形式

      customer.Orders.Add(new Order{});订单导航属性是复数形式。

      要了解更多信息,您还可以阅读我书中的 7-6 食谱。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多