2016-10-12 4 views
0

Я хочу использовать SQL Server CE 4 вместе с миграциями EF 6 для операций с базой данных в своих тестах интеграции.Тесты интеграции с MS SQL с миграциями SQL Server CE и EF 6

В id's этих образований являются Guid's и некоторые из них генерируется сервером с помощью:

.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); 

Остальные используют

.HasKey(x => x.Id); 

, которые являются также Guid, но что-то который устанавливается на объект до его сохранения.

Однако я получаю следующее исключение, когда мои контекстные вызовы: context.saveChanges();

Исключение:

{"Server-generated keys are only supported for identity columns. The column 'Id' has type 'SqlServerCe.uniqueidentifier', which is not a valid type for an identity column."} 

Является ли это потому, что SQL Server CE не могу генерировать id's?

Я использую тот же контекст для SQL Server, и он отлично работает.

ответ

0

Да, из-за ограничений в механизме SQL Server Compact невозможно получить сгенерированное значение идентификатора от двигателя.

можно установить по умолчанию

newid() 

Но двигатель не предлагает способа получения присвоенного значения Guid после сохранения (в отличие от Int значения, где вы можете использовать @@ IDENTITY)

Смежные вопросы