LINQ to SQL einfügen, falls nicht vorhanden

Ich möchte wissen, ob es einfacher ist, einen Datensatz einzufügen, wenn er noch nicht in einer Tabelle vorhanden ist. Ich versuche immer noch, meine LINQ to SQL-Kenntnisse aufzubauen.

Folgendes habe ich, aber es scheint, dass es einen einfacheren Weg geben sollte.

<code>public static TEntity InsertIfNotExists<TEntity>
(
    DataContext db,
    Table<TEntity> table,
    Func<TEntity,bool> where,
    TEntity record
)
    where TEntity : class
{
    TEntity existing = table.SingleOrDefault<TEntity>(where);

    if (existing != null)
    {
        return existing; 
    }
    else
    {
        table.InsertOnSubmit(record);

        // Can't use table.Context.SubmitChanges()
        // 'cause it's read-only

        db.SubmitChanges();
    }

    return record;
}
</code>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage