ASP.Net Entity Framework Repository & Linq

Posted by Chris Klepeis on Stack Overflow See other posts from Stack Overflow or by Chris Klepeis
Published on 2010-06-16T17:16:28Z Indexed on 2010/06/16 17:32 UTC
Read the original article Hit count: 650

My scenario:

This is an ASP.NET 4.0 web app programmed via C#

I implement a repository pattern. My repositorys all share the same ObjectContext, which is stored in httpContext.Items. Each repository creates a new ObjectSet of type E. Heres some code from my repository:

public class Repository<E> : IRepository<E>, IDisposable
    where E : class
{
    private DataModelContainer _context = ContextHelper<DataModelContainer>.GetCurrentContext();
    private IObjectSet<E> _objectSet;
    private IObjectSet<E> objectSet
    {
        get
        {
            if (_objectSet == null)
            {
                _objectSet = this._context.CreateObjectSet<E>();
            }
            return _objectSet;
        }
    }

    public IQueryable<E> GetQuery()
    {
        return objectSet;
    }

Lets say I have 2 repositorys, 1 for states and 1 for countrys and want to create a linq query against both. Note that I use POCO classes with the entity framework. State and Country are 2 of these POCO classes.

Repository stateRepo = new Repository<State>();
Repository countryRepo = new Repository<Country>();

IEnumerable<State> states = (from s in _stateRepo.GetQuery()
                             join c in _countryRepo.GetQuery() on s.countryID equals c.countryID
                             select s).ToList();
Debug.WriteLine(states.First().Country.country)

essentially, I want to retrieve the state and the related country entity. The query only returns the state data... and I get a null argument exception on the Debug.WriteLine

LazyLoading is disabled in my .edmx... thats the way I want it.

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about LINQ