LINQ to SQL insert-if-non-inexistente

Gostaria de saber se há uma maneira mais fácil de inserir um registro, se ele já não existir em uma tabela. Ainda estou tentando construir minhas habilidades LINQ to SQL.

Aqui está o que eu tenho, mas parece que deveria haver um caminho mais fácil.

<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