LINQ to SQL insert-si-no existe

Me gustaría saber si hay una forma más fácil de insertar un registro si no existe en una tabla. Todavía estoy tratando de construir mis habilidades LINQ to SQL.

Esto es lo que tengo, pero parece que debería haber una manera más 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>

Respuestas a la pregunta(4)

Su respuesta a la pregunta