SQL Server CE 4.0, CodeFirst и ключи GUID

Я использую code-first для разработки своей модели и выбрал GUID в качестве типа данных для своих первичных ключей. Мои классы выглядят так:

public class AccountMovementPlan
{
    [Key, DatabaseGenerated( System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity )]
    public Guid AccountMovementPlanID { get; set; }

    [Required]
    public Guid UserAccountID { get; set; }

    [ForeignKey("UserAccountID")]
    public UserAccount UserAccount { get; set; }     

// etc, etc, etc   
}

Затем я выбрал SQL Server CE 4.0 в качестве хранилища данных, реализовал конфигурацию для использования SqlCEConnectionFactory и использования DropCreateDatabaseIfModelChanges в качестве метода инициализации.

Но когда я пытаюсь запустить свое приложение, меня встречает ошибка

В EntityFramework.dll произошло необработанное исключение типа «System.Data.SqlServerCe.SqlCeException».

который сообщает мне, что

Столбец идентификаторов должен быть целочисленным или большим целочисленным типом данных и не может иметь значение NULL.

Мой вопрос очевиден: SQL Server CE с code-first не поддерживает автоматически сгенерированные GUID в качестве PK? Или у меня где-то ошибка?

Большое спасибо.


person sinkien    schedule 22.05.2015    source источник


Ответы (1)


Нет, это не поддерживается, вы должны использовать Guid.NewGuid() в своем коде, чтобы присвоить значение.

person ErikEJ    schedule 22.05.2015