Entity Framework делает удваиваемое свойство двойным - PullRequest
0 голосов
/ 02 июня 2018

У меня есть свойство под названием TotalVolume, которое является Double.В подходе, основанном на коде, при создании базы данных свойство TotalVolume по умолчанию получает значение Not Null.Я хочу, чтобы свойство TotalVolume также принимало Null значений.

Я использую FluentAPI, и я сделал следующее изменение:

        modelBuilder.Entity<Employee>()
            .Property(p => p.TotalVolume)
            .IsRequired(false);

Я получаюследующая ошибка, когда I Add-Migration:

Свойство «TotalVolume» для типа сущности «Сотрудник» не может быть помечено как обнуляемое / необязательное, поскольку тип свойства «double», который не может обнулятьсятип.Любое свойство может быть помечено как необнуляемое / обязательное, но только свойства обнуляемых типов, которые не являются частью первичного ключа, могут быть помечены как обнуляемые / необязательные.

После этого я попробовал следующий подходгде я сделал следующее изменение в моей Employee модели.

    public double? TotalVolume{ get; set; }

Однако, когда я обновил базу данных, тип данных для TotalVolume изменился на float.Я хочу, чтобы тип данных оставался как double.

1 Ответ

0 голосов
/ 02 июня 2018

float в SQL является 64-битным значением и соответствует double в .Net, поэтому, похоже, он работает так, как ожидалось.

Entity Framework отображает эти типы так, чтобы они имели одинаковое значение, но не требует, чтобы они имели одинаковые имена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...