Table<TEntity>.Attach Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt eine Entität an den DataContext an.
Überlädt
| Attach(TEntity) |
Fügt eine getrennte Entität einem neuen DataContext an, wenn ursprüngliche Werte für Prüfungen der vollständigen Parallelität benötigt werden. |
| Attach(TEntity, Boolean) |
Fügt eine Entität im veränderten oder unveränderten Zustand an den DataContext an. |
| Attach(TEntity, TEntity) |
Fügt eine Entität im veränderten oder unveränderten Zustand an den DataContext an, indem sowohl die Entität als auch ihr ursprünglicher Zustand angegeben werden. |
Hinweise
Verwenden Sie die Methoden mit Entitäten, die Attach in einem DataContext, serialisiert auf einen Client erstellt wurden, und dann zurück (mit der Absicht, einen Update- oder Löschvorgang auszuführen). Weitere Informationen finden Sie unter Datenabruf- und CUD-Vorgänge in N-Tier-Anwendungen (LINQ to SQL).
Versuchen Sie nicht, eine Entität zu Attach verwenden, die nicht durch Serialisierung getrennt wurde. Entitäten, die nicht serialisiert wurden, verwalten weiterhin Zuordnungen mit verzögerten Ladeern, 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 Ladegeräte 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 Sammlungen in einen Unmodified Zustand eingefügt. Um Mitglieder 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 Anfügen von Mitarbeitern, Master und Kind, da die Employee Beziehungen sowohl zum Master als auch zum Kind verfügen. Sie müssen explizit InsertOnSubmit aufrufen, um den Zustand von eingefügtem Zustand zu ändern.
Attach(TEntity)
Fügt eine getrennte Entität einem neuen DataContext an, wenn ursprüngliche Werte für Prüfungen der vollständigen Parallelität benötigt werden.
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 Methoden mit Entitäten, die Attach in einem DataContext, serialisiert auf einen Client erstellt wurden, und dann zurück, um einen Update- oder Löschvorgang auszuführen. Da das 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 im ursprünglichen Wertzustand liegt. Nach dem Aufrufen dieser Methode können Sie dann seine Felder aktualisieren, z. B. mit zusätzlichen Daten, die vom Client gesendet werden.
Wenn eine neue Entität angefügt wird, werden verzögerte Ladegeräte 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 Sammlungen in einen Unmodified Zustand eingefügt. Um Mitglieder einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.
Weitere Informationen finden Sie unter Datenabruf- und CUD-Vorgänge in N-Tier-Anwendungen (LINQ to SQL).
Versuchen Sie nicht, eine Entität zu Attach verwenden, die nicht durch Serialisierung getrennt wurde. Entitäten, die nicht serialisiert wurden, verwalten weiterhin Zuordnungen mit verzögerten Ladeern, 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 im veränderten oder unveränderten Zustand an den DataContext 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, um die Entität als geändert anzufügen; false, um die Entität als nicht geändert anzufügen.
Hinweise
Wenn sie als geändert angefügt werden, 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 Ladegeräte 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 Sammlungen in einen Unmodified Zustand eingefügt. Um Mitglieder 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 im veränderten oder unveränderten Zustand an den DataContext an, indem sowohl die Entität als auch ihr ursprünglicher Zustand angegeben werden.
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 des gleichen Entitätstyps mit Datenmembern, 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 aufrufen Attach , ohne die Updates erneut wiedergeben zu müssen.
Wenn eine neue Entität angefügt wird, werden verzögerte Ladegeräte 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 Sammlungen in einen Unmodified Zustand eingefügt. Um Mitglieder einer untergeordneten Auflistung zu aktualisieren, müssen Sie diese Entität explizit aufrufen Attach und angeben.