Как лучше всего вручную сгенерировать первичные ключи в Entity Framework 4.1 Code First

Как лучше всего вручную сгенерировать первичные ключи в Entity Framework 4.1 Code First?

Я программирую ASP.NET MVC 3 и использую шаблон репозитория.

] В настоящее время я генерирую ключи в последовательном порядке, используя следующий код:

'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

Я утверждаю (однако маловероятно), что два (или более) пользователя попытаются сохранить объект Foo одновременно и, следовательно, получат один и тот же идентификатор, и вставка завершится неудачно.

Это хороший способ , или есть что-то лучше?

Пожалуйста, обратите внимание, что я НЕ МОГУ (и не буду) использовать поле идентификации, созданное базой данных!

7
задан Thomas 10 May 2011 в 19:22
поделиться