If you use lazy loading, more calls to the database happen through transparent calls to LINQ to SQL. For example, by default, if your DAL returns a Subject object and you access its Books property in your business logic or presentation layers, an implicit call to the database is done without your always being aware of it. A solution to avoid this is to return only detached objects (value objects), with lazy loading deactivated.
Detach objects before passing to business layer
Share this highlighthttp://www.safaribooksonline.com/a/linq-in-action/61754/