By default CRUD operation can be performed on the retrieved data from LINQ query. We can modify the data fetched through LINQ query.

IF we do not want to modify the data then we can increase the performance by making the data as READ ONLY.



If we set ObjectTrackingEnabled as false for DataContext then framework will not track the changes done on the DataContext.


using System;
using System.Linq;
using System.Data.Linq;
namespace ConsoleApplication5
    class Program
            static void Main(string[] args)
                    DataClasses1DataContext context = new DataClasses1DataContext();
                    context.ObjectTrackingEnabled = false;
                    var result = from r in context.Persons orderby r.FirstName select r;                   
                    foreach (var r in result)
                        Console.WriteLine(r.FirstName + " " + r.LastName);



There are two scenarios while ObjectTrackingEnabled as false can throw exception


1. If we execute the query and after that making the ObjectTrackingEnabled as false.



Then we will get below exception


2. If we try to perform submitchanges() operation because DataContext is on readonly.


One thought on “Read-Only Data in LINQ

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s