LINQ do SQL insert-if-non-nie istnieje

Chciałbym wiedzieć, czy istnieje łatwiejszy sposób wstawienia rekordu, jeśli nie istnieje on już w tabeli. Nadal próbuję zbudować moje umiejętności LINQ do SQL.

Oto, co mam, ale wygląda na to, że powinien być łatwiejszy sposób.

<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>

questionAnswers(4)

yourAnswerToTheQuestion