Qual é a melhor maneira de gerar manualmente Chaves Primárias no Entity Framework 4.1 Code First

Qual é a melhor maneira de gerar manualmente Chaves Primárias no Código do Entity Framework 4.1 Primeir

stou programando o ASP.NET MVC 3 e uso um padrão de repositóri

Atualmente, gero chaves em uma ordem sequencial usando o código abaixo:

'Code First Class
Public Class Foo
    <Key()>
    <DatabaseGenerated(DatabaseGeneratedOption.None)>
    Public Property iId As Integer

    Public Property sBar As String
End Class

'Context Class
 Public Class FooBarContext : Inherits DbContext
     Public Property Foos As DbSet(Of Foo)
 End Class

'Get the current Id

'Part of code in repository that stores Entity Foo.
Dim iCurrId as Integer = (From io In context.Foo
                         Select io.iId()).Max

Dim iNewId as Integer = iCurrId + 1

Foo.iId = iNewId

Minha preocupação é (por mais improvável) que dois (ou mais) usuários tentem salvar uma entidade Foo ao mesmo tempo e, portanto, obtenham o mesmo ID e a inserção falh

Esta é uma boa maneira, ou existe alguma melhor?

Por favor, não POSSO (e não irei) usar um campo de identidade gerado por banco de dado

questionAnswers(3)

yourAnswerToTheQuestion