Structure d'entité ASP.Net, erreur objectcontext

Je suis en train de construire un 4 couches ASP.Net application web.
Les couches sont:

  1. Couche De Données
  2. Entité De La Couche De
  3. De La Couche De Gestion
  4. Couche d'INTERFACE utilisateur

L'entité de la couche de mes données ont des classes de modèle et est construit à partir de mon modèle de données d'entité (fichier edmx) dans le datalayer à l'aide de modèles de T4 (POCO). L'entité de la couche est référencé dans toutes les autres couches.

Ma couche de données dispose d'une classe appelée SourceKeyRepository qui a une fonction comme ceci:

public IEnumerable<SourceKey> Get(SourceKey sk)
{
    using (dmc = new DataModelContainer())
    {
        var query = from SourceKey in dmc.SourceKeys
                    select SourceKey;

        if (sk.sourceKey1 != null)
        {
            query = from SourceKey in query
                    where SourceKey.sourceKey1 == sk.sourceKey1
                    select SourceKey;
        }

        return query;
    }
}

Lazy loading est désactivé car je ne veux pas que mes requêtes à exécuter dans les autres couches de la présente demande. Je reçois l'erreur suivante lorsque vous essayez d'accéder à l'information dans la couche d'INTERFACE utilisateur:

ObjectContext instance a été
éliminés et ne peuvent plus être utilisés pour
des opérations qui nécessitent une connexion.

Je suis sûr que c'est parce que mon DataModelContainer "dmc" a été éliminé. Comment puis-je retourner cet objet IEnumerable de ma couche de données de sorte qu'il ne repose pas sur la ObjectContext, mais uniquement sur le modèle de données?

Est-il un moyen de limiter le chargement paresseux pour se produire uniquement dans la couche de données?

source d'informationauteur Chris Klepeis