attaching linq to sql datacontext to httpcontext in business layer

Posted by rap-uvic on Stack Overflow See other posts from Stack Overflow or by rap-uvic
Published on 2010-03-20T06:47:21Z Indexed on 2010/03/20 6:51 UTC
Read the original article Hit count: 357

Filed under:
|
|

Hello all,

I need my linq to sql datacontext to be available across my business/data layer for all my repository objects to access. However since this is a web app, I want to create and destroy it per request. I'm wondering if having a singleton class that can lazily create and attach the datacontext to current HttpContext would work. My question is: would the datacontext get disposed automatically when the request ends? Below is the code for what I'm thinking. Would this accomplish my purpose: have a thread-safe datacontext instance that is lazily available and is automatically disposed when the request ends?

public class SingletonDC
{
    public static NorthwindDataContext Default
    {
        get
        {
            NorthwindDataContext defaultInstance = (NorthwindDataContext)System.Web.HttpContext.Current.Items["datacontext"];
            if (defaultInstance == null)
            {
                defaultInstance = new NorthwindDataContext();
                System.Web.HttpContext.Current.Items.Add("datacontext", defaultInstance);
            }
            return defaultInstance;
        }
    }
}

© Stack Overflow or respective owner

Related posts about linq-to-sql

Related posts about datacontext