Table<TEntity>.Attach Methode

Definition

Fügt eine Entität an die DataContext.

Überlädt

Name Beschreibung
Attach(TEntity)

Fügt eine getrennte oder getrennte Entität an eine neue DataContext an, wenn ursprüngliche Werte für optimistische Parallelitätsprüfungen erforderlich sind.

Attach(TEntity, Boolean)

Fügt eine Entität entweder DataContext in einem geänderten oder unveränderten Zustand an.

Attach(TEntity, TEntity)

Fügt eine Entität DataContext entweder in einem geänderten oder unveränderten Zustand an, indem sie sowohl die Entität als auch den ursprünglichen Zustand angeben.

Hinweise

Verwenden Sie die Attach Methoden mit Entitäten, die in einem DataContexterstellt wurden, serialisiert auf einen Client und dann zurück deserialisiert (mit der Absicht, einen Aktualisierungs- oder Löschvorgang auszuführen). Weitere Informationen finden Sie unter Data Retrieval and CUD Operations in N-Tier Applications (LINQ to SQL).

Versuchen Sie nicht, eine Entität zu Attach verwenden, die nicht durch Serialisierung getrennt wurde. Entitäten, die nicht serialisiert wurden, behalten weiterhin Zuordnungen mit verzögerten Ladeern bei, die unerwartete Ergebnisse verursachen können, wenn die Entität von einem zweiten Datenkontext nachverfolgt wird.

Wenn eine neue Entität angefügt wird, werden verzögerte Ladeprogramme für alle untergeordneten Sammlungen (z EntitySet . B. Sammlungen von Entitäten aus zugeordneten Tabellen) initialisiert. Wenn SubmitChanges sie aufgerufen wird, werden Elemente der untergeordneten Auflistungen in einen Unmodified Zustand versetzt. Um Member einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.

Attach fügt alle Entitäten im Objektdiagramm des bereitgestellten Objekts an. Beispiel:

using (var db = new SampleDataContext())
{
    var employee = new Employee { employeeId = 1 };

    var master = new Master();
    master.Employee = employee;

    var child = new Child();
    child.Employee = employee;

    db.Employees.Attach(employee);

    master.Child = child;

    db.Masters.InsertOnSubmit(master);

    db.SubmitChanges();
}
Using db As New SampleDataContext()
    Dim employee As New Employee With { .employeeId = 1 }

    Dim master As New Master()
    master.Employee = employee

    Dim child As New Child()
    child.Employee = employee

    db.Employees.Attach(employee)

    master.Child = child

    db.Masters.InsertOnSubmit(master)

    db.SubmitChanges()

End Using

Das Aufrufen Attach von Employee "Mitarbeiter", "Master" und "Untergeordnetes Element", da die Employee Beziehungen sowohl zum Master- als auch zum untergeordneten Element aufweisen. Sie müssen explizit aufrufen InsertOnSubmit , um den Zustand von "Eingefügt" zu ändern.

Attach(TEntity)

Fügt eine getrennte oder getrennte Entität an eine neue DataContext an, wenn ursprüngliche Werte für optimistische Parallelitätsprüfungen erforderlich sind.

public:
 void Attach(TEntity entity);
public:
 virtual void Attach(TEntity entity);
public void Attach(TEntity entity);
member this.Attach : 'Entity -> unit
abstract member Attach : 'Entity -> unit
override this.Attach : 'Entity -> unit
Public Sub Attach (entity As TEntity)

Parameter

entity
TEntity

Die ursprünglichen Werte der Entität, die angefügt werden soll.

Implementiert

Hinweise

Verwenden Sie die Attach Methoden mit Entitäten, die in einem DataContexterstellt wurden, serialisiert für einen Client, und deserialisiert, um einen Aktualisierungs- oder Löschvorgang auszuführen. Da der neue DataContext keine Möglichkeit hat, nachzuverfolgen, was die ursprünglichen Werte für eine getrennte Entität waren, ist der Client für die Bereitstellung dieser Werte verantwortlich. In dieser Version wird Attachdavon ausgegangen, dass die Entität in ihrem ursprünglichen Wertzustand liegt. Nach dem Aufrufen dieser Methode können Sie die zugehörigen Felder aktualisieren, z. B. mit zusätzlichen Daten, die vom Client gesendet werden.

Wenn eine neue Entität angefügt wird, werden verzögerte Ladeprogramme für alle untergeordneten Sammlungen (z EntitySet . B. Sammlungen von Entitäten aus zugeordneten Tabellen) initialisiert. Wenn SubmitChanges sie aufgerufen wird, werden Elemente der untergeordneten Auflistungen in einen Unmodified Zustand versetzt. Um Member einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.

Weitere Informationen finden Sie unter Data Retrieval and CUD Operations in N-Tier Applications (LINQ to SQL).

Versuchen Sie nicht, eine Entität zu Attach verwenden, die nicht durch Serialisierung getrennt wurde. Entitäten, die nicht serialisiert wurden, behalten weiterhin Zuordnungen mit verzögerten Ladeern bei, die unerwartete Ergebnisse verursachen können, wenn die Entität von einem zweiten Datenkontext nachverfolgt wird.

Gilt für:

Attach(TEntity, Boolean)

Fügt eine Entität entweder DataContext in einem geänderten oder unveränderten Zustand an.

public:
 void Attach(TEntity entity, bool asModified);
public void Attach(TEntity entity, bool asModified);
member this.Attach : 'Entity * bool -> unit
Public Sub Attach (entity As TEntity, asModified As Boolean)

Parameter

entity
TEntity

Die Entität, die angefügt werden soll.

asModified
Boolean

true die Entität als geändert anzufügen; false um die Entität als unverändert anzufügen.

Hinweise

Wenn die Entität geändert angefügt wird, muss die Entität entweder ein Versionsmitglied deklarieren oder nicht an der Aktualisierungskonfliktüberprüfung teilnehmen. Wenn eine neue Entität angefügt wird, werden verzögerte Ladeprogramme für alle untergeordneten Sammlungen (z EntitySet . B. Sammlungen von Entitäten aus zugeordneten Tabellen) initialisiert. Wenn SubmitChanges sie aufgerufen wird, werden Elemente der untergeordneten Auflistungen in einen Unmodified Zustand versetzt. Um Member einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.

Gilt für:

Attach(TEntity, TEntity)

Fügt eine Entität DataContext entweder in einem geänderten oder unveränderten Zustand an, indem sie sowohl die Entität als auch den ursprünglichen Zustand angeben.

public:
 void Attach(TEntity entity, TEntity original);
public void Attach(TEntity entity, TEntity original);
member this.Attach : 'Entity * 'Entity -> unit
Public Sub Attach (entity As TEntity, original As TEntity)

Parameter

entity
TEntity

Die Entität, die angefügt werden soll.

original
TEntity

Eine Instanz desselben Entitätstyps mit Datenelementen, die die ursprünglichen Werte enthalten.

Beispiele

using (Northwnd db2 = new Northwnd(@"c:\northwnd.mdf"))
{
    Customer Cust_File = new Customer();
    string xmlFile = "";

    // Get the original object from the deserializer.
    Customer c = SerializeHelper.Deserialize<Customer>
        (xmlFile, Cust_File);

    // Set all the desired properties to the entity to be attached.
    Customer c_updated = new Customer() { CustomerID = c.CustomerID,
        Phone = "425-123-4567", CompanyName = "Microsoft" };
    db2.Customers.Attach(c_updated, c);

    // Perform last minute updates, which will still take effect.
    c_updated.Phone = "425-765-4321";

    // SubmitChanges()sets the phoneNumber and CompanyName of
    // customer with customerID=Cust. to "425-765-4321" and
    // "Microsoft" respectively.
    db2.SubmitChanges();
}
Using db = New Northwnd("...")
    Dim Cust_File As New Customer()
    Dim xmlFile As String = ""

    'Get the original object from the deserializer.
    Dim c As Customer = SerializeHelper.Deserialize(Of Customer)(xmlFile, Cust_File)

    ' Set all the desired properties to the entity to be attached.
    Dim c_updated As New Customer With {.CustomerID = c.CustomerID, _
    .Phone = "425-123-4567", .CompanyName = "Microsoft"}
    db.Customers.Attach(c_updated, c)

    ' Perform last minute updates, which will still take effect. 
    c_updated.Phone = "425-765-4321"

    ' SubmitChanges()sets the phoneNumber and CompanyName of
    ' customer with customerID=Cust. to "425-765-4321" and
    ' "Microsoft" respectively.
    db.SubmitChanges()
End Using

Hinweise

Im folgenden Beispiel ist das Customer Objekt bereits ordnungsgemäß konfiguriert. Sie können anrufen Attach , ohne die Updates erneut wiedergeben zu müssen.

Wenn eine neue Entität angefügt wird, werden verzögerte Ladeprogramme für alle untergeordneten Sammlungen (z EntitySet . B. Sammlungen von Entitäten aus zugeordneten Tabellen) initialisiert. Wenn SubmitChanges sie aufgerufen wird, werden Elemente der untergeordneten Auflistungen in einen Unmodified Zustand versetzt. Um Member einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.

Gilt für: