You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4 to create an application. You
use the ADO.NET Entity Framework to model entities. You write the following code segment. (Line
numbers are included for reference only.)
01 AdventureWorks Entities context = new AdventureWorksEntities (
02 ” http://localhost:1234/AdventureWorks.svc “
03 );
04
05 var q = from c in context.Customers
06 where c.City == “London”
07 orderby c.CompanyName
08 select c;
You need to ensure that the application meets the following requirements:
• Compares the current values of unmodified properties with values returned from the data source.
• Marks the property as modified when the properties are not the same
Which code segment should you insert at line 04?
A.
context.MergeOption = MergeOption.AppendOnly;
B.
context.MergeOption = MergeOption.PreserveChanges;
C.
context.MergeOption = MergeOption.OverwriteChanges;
D.
context.MergeOption = MergeOption.NoTracking;
Explanation:
PreserveChanges – Objects that do not exist in the object context are attached to the context.
If the state of the entity is Unchanged, the current and original values in the entry are overwritten
with data source values.
The state of the entity remains Unchanged and no properties are marked as modified.
If the state of the entity is Modified, the current values of modified properties are not overwritten
with data source values.
The original values of unmodified properties are overwritten with the values from the data source.
In the .NET Framework version 4, the Entity Framework compares the current values of unmodified
properties with the values that were returned from the data source. If the values are not the same,
the property is marked as modified.
MergeOption Enumeration
(http://msdn.microsoft.com/en-us/library/system.data.objects.mergeoption.aspx)