Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

3 methods for adding a "Product" through Entity Framework. What's the difference?

Reading this MSDN article titled "Working with ObjectSet (Entity Framework)" It shows two examples on how to add a Product.. one for 3.5 and another for 4.0.

http://msdn.microsoft.com/en-us/library/ee473442.aspx

Through my lack of knowledge I am possibly completely missing something here, but i never added a Product like this:

   //In .NET Framework 3.5 SP1, use the following code: (ObjectQuery)
   using (AdventureWorksEntities context = new AdventureWorksEntities())
   {
      // Add the new object to the context.
      context.AddObject("Products", newProduct);
   } 

   //New in .NET Framework 4, use the following code: (ObjectSet)
   using (AdventureWorksEntities context = new AdventureWorksEntities())
   {
      // Add the new object to the context.
      context.Products.AddObject(newProduct);
   }

I would not have done it either way and just used:

   // (My familiar way)
   using (AdventureWorksEntities context = new AdventureWorksEntities())
   {
      // Add the new object to the context.
      context.AddToProducts(newProduct);
   }

What's the difference between these three ways?

Is "My way" just another way of using an ObjectQuery?

Thanks, Kohan

like image 658
4imble Avatar asked May 11 '10 13:05

4imble


People also ask

What are the three types of Entity Framework?

There are three approaches to model your entities in Entity Framework: Code First, Model First, and Database First. This article discusses all these three approaches and their pros and cons.

How many types of Entity Framework are there?

There are two types of Entities in Entity Framework: POCO Entities and Dynamic Proxy Entities.

What is Entity Framework and its types?

In Entity Framework, there are two types of entities that allow developers to use their own custom data classes together with data model without making any modifications to the data classes themselves. POCO entities. Dynamic Proxy.

What is Entity Framework and why we use it?

The Entity Framework enables developers to work with data in the form of domain-specific objects and properties, such as customers and customer addresses, without having to concern themselves with the underlying database tables and columns where this data is stored.


1 Answers

All of them do the same thing, with minor differences in syntax.

First, let's look at the 3.5 way and "your way." If you look at the codegen file for your EDMX, you'll see something like:

    public void AddToProducts(Product product)
    {
        base.AddObject("Products", product);
    }

So these two methods are exactly the same, except that the magic string in your code is replaced by a codegened version which can never be wrong.

The ".NET 4 way" does the same thing, but does it differently. It uses the strongly typed ObjectSet<T>, which allows you to create a strongly-typed reference dynamically but without using strings. In the case of adding an object to a context, though, there's not a real advantage that I know of, except that it allows you to be more consistent about how you reference your entities -- you read them from the context using the same property (Context.Products) which you use to write them.

like image 62
Craig Stuntz Avatar answered Oct 22 '22 11:10

Craig Stuntz