Wie würde Sie schreiben ein Upsert für LINQ to SQL?

Also ich möchte schreiben eine generische Upsert-Funktion für LINQ to SQL und ich habe einige Schwierigkeiten, die Konzeptualisierung, wie es zu tun. Ich möchte es für die Arbeit, so etwas wie dieses:

var db = new DataContext();
db.Customers.UpsertOnSubmit(customer);

So müsste es allgemein in gewisser Weise, und ich denke und extension-Methode auf die Tabelle. Ich habe in der Lage, so weit zu kommen bei der Bestimmung der Primärschlüssel der zugrunde liegenden Tabelle:

var context = source.Context;
var table = context.Mapping.GetTable(source.GetType());
var primaryMember = table.RowType.DataMembers.SingleOrDefault(m => m.IsPrimaryKey);

Ich gehe davon aus, dass es notwendig sein wird, um diese zu verfassen, eine Abfrage zu sagen, wenn der Artikel ist in der DB bereits oder nicht, aber ich weiß wirklich nicht, was zu tun an diesem Punkt.

InformationsquelleAutor JC Grubbs | 2009-03-12
Schreibe einen Kommentar