Reputation: 1127
I wanted to use the entity framework context object every time. What could be the better way to define in asp.net?
ex:
using(employeeEntities context = new employeeEntities ())
{
}
I want to use this context every where without reusing the using
Upvotes: 1
Views: 338
Reputation: 2574
If you just want some syntax sugar to avoid using using
but still create a new context every time, You can write some extension methods which help you write code like this:
// Execute is the extension method which takes the code
// in the using block as a delegate
SomeEntities.Execute(context =>
context.SomeTable.Where(item => item.Ammount > 100));
I can share you the code if that's what you want. Refer to CloudyMarble's answer if you want to use a single context all the time.
Upvotes: 0
Reputation: 37566
While you can do that microsoft recommends using the context in a different way, take a look at the documentation:
...
The lifetime of the ObjectContext begins when the instance is created and ends when the instance is either disposed or garbage-collected. Use using if you want all the resources that the context controls to be disposed at the end of the block. When you use using, the compiler creates a try/finally block and calls dispose in the finally block. Here are some general guidelines when deciding on the lifetime of the object context:
1. When working with long-running object context consider the following:
- As you load more objects and their references into memory, the object
context may grow quickly in memory consumption. This may cause
performance issues.
- Remember to dispose of the context when it is no longer required.
- If an exception caused the object context to be in an unrecoverable
state, the whole application may terminate.
- The chances of running into concurrency-related issues increase as
the gap between the time when the data is queried and updated grows.
2. When working with Web applications, **use an object context instance per request**...
3. When working with Windows Presentation Foundation (WPF) or Windows Forms, use an object context instance per form. This lets you use change tracking functionality that object context provides.
...
In addition take a look at this related thread: One DbContext per web request... why?
Upvotes: 3