2009-03-12 5 views
4

Je développe la classe partielle d'une entité pour avoir une méthode. Comment obtenir une référence au contexte auquel l'entité est attachée (le cas échéant) pour obtenir plus d'entités du même contexte.Entity Framework get CurrentContext

Si ce n'est pas clair, essentiellement le code que je suis à la recherche d'écrire est dans ce sens (code de l'air):

public void AssignSize(int width, int height) 
{ 
    var size = (from s in this.context.Sizes 
       where s.width == width && s.height == height 
       select s).FirstOrDefault(); 

    ... 
} 

Nb: Cela ne fonctionne pas.

Répondre

4

Vous devez passer le contexte à cette méthode ou, mieux encore, plutôt que de passer en largeur et en hauteur, passez l'objet taille lui-même.

+0

point pris sur la boiterie de l'exemple: o) donc aucun moyen de le faire sans passer le contexte dans? C'est une honte. – NikolaiDante

+0

Considérez ceci: var myEntity = new MyEntity(); myEntity.AssignSize (1,2); Ceci est juste un problème avec le couplage d'une entité à un contexte particulier. –

3

Jetez un oeil à cet article:

how-to-get-the-objectcontext-from-an-entity

Il montre une solution de contournement pour obtenir le contexte d'une entité.

+0

Notez que cela ne fonctionnera pas à partir de EF6: toutes les entités sont de simples POCO qui ne descendent plus d'EntityObject et n'ont aucune connaissance de leur contexte (mais leur contexte en a connaissance). – dudeNumber4

+1

Cette méthode fonctionne avec EF6: http://www.apterasoftware.com/Blog/Post/10-10-26/How_To_Get_the_Context_from_an_Entity_Framework_Object.aspx – dudeNumber4

+1

@ dudeNumber4 ce lien est rompu maintenant – rdans

0

Entités db = new Entities();

Lorsque des entités est le nom que vous avez dit dans EF ...