Die Weitergabe von Entity-Kontext zu anderen Methoden und Objekte

Ich Frage mich, was ist der beste Weg, um pass Zusammenhang zwischen den Klassen. Soll ich mich mit den ref - parameter oder passen den Kontext als parameter? Vorzugsweise an den Konstruktor, aber im Fall einer statischen Methode, was ist der beste Ansatz? I. e. Leistung, Sicherheit, design, etc.. Gibt es einen Leistungseinbruch im Vorbeigehen den Kontext als parameter? Könnte möglicherweise Konflikte passieren, wenn verschiedene threads arbeiten auf den Rahmen zur gleichen Zeit bei der Verwendung von Referenzen?

Main.cs

static void Main(string[] args)
{
    var context = new MyEntities();

    var myClass = new MyClass(context);
    myClass.AddPerson();
    //or
    Person.AddPerson(ref context);
}

MyClass.cs

public class MyClass
{
    public void MyClass(MyEntities context) { }

    public void AddPerson()
    {
        context.People.AddObject(new Person());
    }
}

MySecondClass.cs

public partial class Person
{
    public static AddPerson(ref MyEntities context)
    {
        //Do something
    }
}
  • Es ist kein problem, oder Leistungseinbruch, wenn Sie pass-entity framework-Kontext als ein gewöhnlicher parameter. So stellen Sie sicher es ist schließlich Entsorgt.
  • Die Kontext-Klasse ist nicht thread-sicher, so haben Sie Probleme erwarten, wenn Sie mit einem Kontext, in mehreren threads, egal, wenn Sie es passieren um mit oder ohne ref modifier. Sie haben, um sicherzustellen, thread-Sicherheit selbst durch manuelle thread-Synchronisierung (mit lock usw.). Sie besser vermeiden Sie die Verwendung von einem Kontext in verschiedenen threads in Erster Linie, wenn Sie nicht wirklich brauchen es.
InformationsquelleAutor wonea | 2013-04-22
Schreibe einen Kommentar