LINQ to SQL Instantiation
page 3 of 8
by Brian Mains
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 3614/ 187

Adding Child Objects

When adding a child LINQ object through its parent object's collection, this does not mean that the object is immediately available through the data context.  For instance, take a look at the following code.

Listing 3

Customer customer = _context.Customers.First();
customer.Orders.Add(order);
Assert.AreEqual(1, customer.Orders.Count());
Assert.AreEqual(++changeCount, _context.GetChangeSet().Inserts.Count);
Assert.AreEqual(0, _context.Orders.Count());

Even though the object is added to the customer's orders collection, the order is not immediately available through the DataContext object (represented by the "_context" variable). Rather, it is listed in the ChangeSet object returned from the GetChangeSet() method. The ChangeSet object contains a collection of the inserted, deleted, and updated objects not yet submitted to the database, which this orders object is one of them.  After the following:

Listing 4

_context.SubmitChanges();
Assert.AreEqual(0, _context.GetChangeSet().Inserts.Count());
Assert.AreEqual(1, customer.Orders.Count());
Assert.IsNotNull(customer.Orders.SingleOrDefault(o => 
     o.ReferenceNumber == "X4590X"));

The order being added is no longer in the change set; it is not a child of the customer object and readily available in the orders table.


View Entire Article

Article Feedback

Title:  
Name:  
Url: ( Optional )
Comment:  
Please add 7 and 4 and type the answer here:

User Comments

No comments posted yet.






Ads Powered by Lake Quincy Media
Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2008 ASPAlliance.com  |  Page Processed at 9/7/2008 1:16:37 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search