Why does entity framework pluralize and capitalize

2019-08-31 07:24发布

Why does entity framework pluralize all the class names and capitalize the first letters by default? What are the advantages of doing this ? Probably a stupid question...but just out of curiosity?

3条回答
Deceive 欺骗
2楼-- · 2019-08-31 07:46

In the Capitalization Conventions section of the .NET Design Guidelines for Developing Class Libraries, it states that all class names should be in Pascal case, which it defines as:

"The first letter in the identifier and the first letter of each subsequent concatenated word are capitalized. You can use Pascal case for identifiers of three or more characters. For example:

BackColor"

As for pluralization, I find you get the opposite when you use the default settings for the Entity Framework model designer. It will convert plural Table names to their singular equivalent. For instance, using the Northwind database and using the default settings I find that the designer will change the Products table to a class called Product and Categories table to a class called Category. This makes sense since a single instance of an object would be a Product and not a Products.

If you are getting the opposite effect then I'm puzzled. However, check out this article - Entity Framework 4.0: Pluralization by Dan Rigsby, which perhaps explains what is happening.

查看更多
Viruses.
3楼-- · 2019-08-31 07:54

The .NET style guidelines say that all class names should be in CamelCase.

I don't know about pluralizing though, it's not pluralizing individual entity objects, is it? Would make sense for collections, though.

查看更多
聊天终结者
4楼-- · 2019-08-31 08:01

You should singularize a class and pluralize a collection. For example this is where singularazliation and pluralization is done by ef

var customer = new Customer{}; //singular class db.Customers.AddObject(customer); ObjectSEt is pluralized

customer.Orders.Add(new Order{}); Orders navigation property is pluralized.

To learn more u can also read 7-6 recipe in my book.

查看更多
登录 后发表回答