title: Is DbContext an expensive operation?
body: <p>In C# MVC EF framework, I saw lots of examples that simply creates a new <code>DbContext</code> whenever a insert or query is needed, and then close/release it (many use the "using" for auto close/release). </p>
  
  <p>Did some search on this but couldn't find a good answer, but is creating a <code>DbContext</code> a very cheap and fast operation? </p>
  
  <p>For example, thinking about a typical MVC application, on the page it has many "components", such as headers, sider bars, main content, etc., and in a non-trivial setup, each component will have its own individual logic and code -- do I suppose to create a new <code>DbContext</code> in each of these components? (if yes, will the system auto cache the query result? -- for example, an common use case is that, in each of these component, it needs to query the database for current site wide settings, which is the same row in a table).</p>