views:

100

answers:

3

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?

+2  A: 

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.

Matti Virkkunen
+1  A: 

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.

Dan Diplo
A: 

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.

zeeshanhirani