Получите Первичный ключ новой Записи

Вы можете решить проблему, добавив метку времени к имени базы данных.

var myDatabaseName = "mydatabase_"+DateTime.Now.ToFileTimeUtc();

var options = new DbContextOptionsBuilder()
                .UseInMemoryDatabase(databaseName: myDatabaseName )
                .Options;

Хотя я не видел этого в документации, похоже, в памяти создается только одна база данных с заданным именем. Следовательно, если у вас одно имя, такое исключение может произойти.

Подобное обсуждение есть в этой теме :

optionsBuilder.UseInMemoryDatabase("MyDatabase"); 

Это создает / использует базу данных с именем «MyDatabase». Если UseInMemoryDatabase вызывается снова с тем же именем, то будет использоваться одна и та же база данных в памяти, что позволит ей совместно использовать несколько экземпляров контекста.

blockquote>

И эта проблема github также предлагает такой же подход для добавления уникальной строки с именем базы данных. Надеюсь, это поможет.

6
задан Dana 7 October 2008 в 20:38
поделиться

4 ответа

Microsoft Access 2000 или позже поддерживает @@ свойство IDENTITY для получения значения поля Autonumber после ВСТАВКИ. (MSDN)

Править: Это - ссылка на подобную статью для.NET 3.5

5
ответ дан 8 December 2019 в 18:43
поделиться

Попытайтесь изучить глобальные переменные, которые дадут Вам значение идентификационных данных. В SQL Server это:

ВЫБЕРИТЕ @@ идентификационные данные

Также изучите Scope_Identity () функция

3
ответ дан 8 December 2019 в 18:43
поделиться

Должен смочь ВЫБРАТЬ @@ ИДЕНТИФИКАЦИОННЫЕ ДАННЫЕ даже при том, что необходимо будет использовать второй запрос, чтобы сделать так. Я не думаю, что Доступ MS позволит этому быть объединенным в один запрос.

1
ответ дан 8 December 2019 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: