You use Microsoft Visual Studio 2010 and Microsoft .NET Framework 4.0 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 AdventureWorksEntities context = new AdventureWorksEntities(“http://localhost:1234/AdventureWorks.svc”);
02 …
03 var q = from c in context.Customers
04 where c.City == “London”
05 orderby c.CompanyName
06 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 02?
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)