0

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

4

3 回答 3

2

.NET 风格指南说所有的类名都应该是 CamelCase。

我不知道复数,它不是复数单个实体对象,是吗?不过,这对收藏是有意义的。

于 2010-08-09T20:48:39.343 回答
1

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

"标识符中的第一个字母和每个后续连接单词的第一个字母大写。您可以将 Pascal 大小写用于三个或更多字符的标识符。例如:

背景色"

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

如果你得到相反的效果,那么我很困惑。但是,请查看这篇文章 -实体框架 4.0: Dan Rigsby 的多元化,这或许可以解释正在发生的事情。

于 2010-08-09T21:10:41.423 回答
0

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

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

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

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

于 2010-08-10T03:23:56.107 回答