Как лучше всего вручную сгенерировать первичные ключи в 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 одновременно и, следовательно, получат один и тот же идентификатор, и вставка завершится неудачно.
Это хороший способ , или есть что-то лучше?
Пожалуйста, обратите внимание, что я НЕ МОГУ (и не буду) использовать поле идентификации, созданное базой данных!