2009-03-12 15 views
4

Ich erweitere die partielle Klasse einer Entity um eine Methode zu haben. Wie erhalte ich einen Verweis auf den Kontext, an den die Entität angehängt ist (falls vorhanden), um mehr Entitäten aus demselben Kontext zu erhalten.Entity Framework get CurrentContext

Wenn das nicht klar ist, im Grunde der Code schreibe ich bin auf der Suche nach ist entlang dieser Linien (Luft code):

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: Das funktioniert nicht.

Antwort

4

Sie müssen den Kontext an diese Methode übergeben, oder noch besser, anstatt Breite und Höhe zu übergeben, übergeben Sie das Größenobjekt selbst.

+0

Point auf der Lahmheit des Beispiel genommen: o) Also keiner Weise, es zu tun in den Kontext ohne den Weg? Das ist eine Schande. – NikolaiDante

+0

Betrachten Sie dies: var myEntity = new MyEntity(); myEntity.AssignSize (1,2); Dies ist nur ein Problem bei der Kopplung einer Entität an einen bestimmten Kontext. –

3

Werfen Sie einen Blick auf diesen Artikel:

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

Es zeigt eine Abhilfe den Zusammenhang von einer Einheit zu erhalten.

+0

Beachten Sie, dass dies ab EF6 nicht funktioniert: Alle Entitäten sind einfache POCOs, die nicht mehr von EntityObject abstammen und keine Kenntnisse über ihren Kontext haben (aber ihr Kontext kennt sie). – dudeNumber4

+1

Diese Methode funktioniert mit EF6: http://www.apterasoftware.com/Blog/Post/10-10-26/How_To_Get_the_Context_from_an_Entity_Framework_Object.aspx – dudeNumber4

+1

@ dudeNumber4 dieser Link ist jetzt gebrochen – rdans

0

Entitäten db = new Entities();

Wo Entities wird, um den Namen, den Sie in EF sagte ...