ADO.NET :: Linq To SQL Lazy Loading, Immediate Execution, ToArray()?
Jul 28, 2010
I am developing a website that has more and more LINQ queries. I have been keeping down the download size, optimizing the images, js, css and using HTTP Compression. I notice however, that now that I am using more LINQ queries and more complex queries, join and group joining queries, the 'waiting' time that the browser is doing is going up. The KB size of the page isn't any greater, but the page ultimately takes longer to load.
I have been reading up on LINQ and the behind the scenes of how it works. I have found that I need to use DataLoadOptions for the queries that join/group join to reduce the round trips to the database. I haven't had a chance to work on this yet, so if anyone has any great resources on this or tips, I'd appreciate it.
My main question about LINQ to SQL in this post is, if I have a bunch of queries throughout my site, in the masterpage, and the page itself, if I do not put .ToArray() at the end of the query, does that speed it up? If I leave ToArray() off of all the queries, do they then execute all at once when the page is loading instead of each time the page gets to that specific line to read and execute it?
I may be asking a dumb question, since I don't know a whole lot about the behind the scenes of LINQ yet, or the compiling of the page. I am using VWD 2010, so it does not have the SQL Profiler for me to test what I am asking.
At present I am using ajax:TabContainer for the tabs. As you know that does not do Lazy loading. Can sonone give me links to or some code examples to do Tabs with Lazy loading. I know that the Jquery tabs do lazy loading but there are no complete examples on the web which tells you on how to do lazy loading with JQuery tabs.
I want to build a business object such as an employee class, but I know that 80% of the properties will barely get used. So I wanted to know how I can create the object with the important properties in the constructor and lazy load the ones that are barley used when they are needed (if at all).
I've got this problem.I launched an ASP.NET website with the Umbraco CMS on an ISP.(Its just a very basic informative site. nothing special.)When I go want to visit the website however, the first pageload takes a lot of time, sometimes even up to 20 seconds. Of course this is ridiculous. Afterwards, I am able to navigate the site relatively quick.. So every first pageload is slow, then everything is OK, more or less.Does anybody have any idea what the problem could be? Would it be IIS? ASP.NET?
I have a requirement like need to display 5000+ records in gridview. So, I created scrollable div with gridview init and displaying 200 records per page. The website is running very slow because eveytime when user click on paging, it retrieving all the records from the database. I need to increase the website performance. I heard about a concept Girdview lazy loading but i don't know how to implement. I am looking for a solution like records should display in gridview when ever user scroll the bar down. How to do the gridview lazy loading.
At present we are using <ajax:TabContainer> to load tabs. I have 5 user controls inside <ajax:TabPanel>.
The problem is that all the data on these 5 pages gets loaded at once and increases the loading time as well as it is very hard to debug. Can we do lazy loading uisng TabContainer control? so that only the data of the current tab is loaded and when we click on the other tab then that's control data gets loaded.
I'm planning to fetch data to illustrate about the yearly sales achievement for last 3 years by showing seperately in grids in three different ajax tabs. i prefer to lazy loading of the data to the grid in each tab. is there a way to achieve this on the change event of the tabs.
I'm building an ASP.NET MVC site that uses LINQ to SQL. In my search method that has some required and some optional parameters, I want to build a LINQ query while testing for the existence of those optional parameters.
Here's what I'm currently thinking: using(var db = new DBDataContext()) { IQueryable<Listing> query = null; //Handle required parameter query = db.Listings.Where(l => l.Lat >= form.bounds.extent1.latitude && l.Lat <= form.bounds.extent2.latitude); //Handle optional parameter if (numStars != null) query = query.Where(l => l.Stars == (int)numStars); //Other parameters... //Execute query (does this happen here?) var result = query.ToList(); //Process query...
Will this implementation "bundle" the where clauses and then execute the bundled query? If not, how should I implement this feature?
In Entity framework I have a class which is effectively
fooEntity { public Guid Id {get; set;} and a collection of fooChildEntity } a fooChildEntity is again an entityframework class fooChildEntity { public Guid kidId {get; set;} }
Now I also have a pair of business layer classes foo and fooChild
foo { public Guid Id {get; set;} ilist<fooChild> Children {get;set;} } fooChild { public Guid kidId {get; set;} }
My aim is to write a linq to entites that will allow me to convert the entity foo and children into the business foo and children without breaking deferred execution ( I will be adding filters to reduce the recordset at a higher coding level in the business layer)
doing something like
this.context.fooEntity
.include(fooChildEntity)
.Select( fe => new foo { Id=fe.Id ,
fe.foreach(fec => Children.add( new fooChild { kidId = fec.kidId}))})
.AsIQueryable()
is plainly rubbish and would never compile - it is however an indication of the direction I was thinking .
Even if I got a foreach to work like that or similar it would break deferred execution
At this point there are around 300,000 foo entities which I will eventualy filter to 5 or 6 foo's - this is why deferred execution is needed.
/// <summary> /// Get the required user agreements for the application specified. /// </summary> /// <param name="applicationName">The name of the application.</param> /// <returns>A UserAgreement array containing the name and text of the user agreement.</returns>
[Code]....
i have already registered the webservice, now i need to capture the return value in my aspx.cs page.
I know you are all tired of this Linq-to-Sql questions, but I'm barely starting to use it (never used an ORM before) and I've already find some "ugly" things. I'm pretty used to ASP.NET Webforms old school developing, but I want to leave that behind and learn the new stuff (I've just started to read a ASP.NET MVC book and a .NET 3.5/4.0 one). So here's is one thing I didn't like and I couldn't find a good alternative to it.
In most examples of editing a LINQ object I've seen the object is loaded (hitting the db) at first to fill the current values on the form page. Then, the user modify some fields and when the "Save" button is clicked, the object is loaded for second time and then updated. Here's a simplified example of ScottGu NerdDinner site.
As you can see the dinner object is loaded two times for every modification. Unless I'm missing something about LINQ to SQL caching the last queried objects or something like that I don't like getting it twice when it should be retrieved only one time, modified and then comitted back to the database. So again, am I really missing something? Or is it really hitting the database twice (in the example above it won't harm, but there could be cases that getting an object or set of objects could be heavy stuff).
I'm trying out EF4 as part of a .Net 4.0 WCF service. The aim of the service is to return document data as an array of entity objects to any of our ASP.Net apps. The apps are still in .Net 2.0. Due to the nature of the solution I've disabled LazyLoading at context level. I started with this:
[Code]....
Everything works ok, I receive the correct number of populated objects. However when I add an Include into my query to allow us to pickup fields from a related table that has a defined navigation only the first record is returned fully populated to a calling application:
[Code]....
The array is the correct size but all elements after the first are blank, default placeholders. Its like using the Include has reverted to LazyLoading and I can't seem to kick it into line.
cannot find any examples of how to lazy load the Infragistics UltraWebTree v6.3I found that the docs on the Infragistics site tend to be limited to the latest version of their controls, but this is a legacy app which I am unable to upgrade. Has anyone got example code or links which demonstrate how to lazy-load nodes in this control?The current implementation that we have loads 1.35MB of html because it is populating the entire tree!!
I have update panel on the page to avoid postback and placed a dropdownlist control within that update panel. DrodownList is filled with Category names and also it's autopostback set to True.
Now whenever dropdownlist index change's on select, untill page loads complete data it should show mesage as "Loading.... in center and middle of the page and background should become bit transparent". And when page load completely with data then that background and message should get disappear.
i have developed my asp.net application along wih crystal report .... i need to show loading image on ever client and server side request .... (i.e) like when ever IE progress bar get loading i want to show my gif loading ... after IE progress bar finish its loading, my gif loading image should disappear .
We have installed a web site written by others which is compiled with Visual Studio 2008 and hosted in Windows server 2008 R2.
The IIS connection timeout is set to 120 seconds. But for some pages, the first page loading fails with HTTP 404 error but sequential refresh can bring the page up. The same problem happens for some images which fail to load in web pages. We are not very sure it is network related issue or hosting issue.
MSDN got a page showing in which order ASP.Net global.asax methods are invoked. I can't seem to find it, anyone got a linkAre there a similar page, but for ASP.Net MVC (including in which order all controller methods are invoked like OnActionExecuting, OnAuthorization etc)?
ASP.Net app life cycle: http://msdn.microsoft.com/en-us/library/bb470252.aspx
How the does the gridview populate all records?.As the reader is capable of reading one row per read,I thought only the last row is available for GridView to display.