Переопределение значения по умолчанию в Entity Framework, когда StoreGeneratedPattern = Computed - PullRequest
1 голос
/ 12 февраля 2020

Используя SQL и EF 6 (C#), я прочитал несколько сообщений на эту тему, но без четкого решения.

Проблема проста, я хочу иметь значение по умолчанию, если не указано иное 'value в базе данных.

Итак, я установил значение по умолчанию в базе данных следующим образом:

[notification_sent] BIT NULL DEFAULT ((0)),

Затем поверните StoreGeneratedPattern в' Computed 'в EDMX (сначала используйте базу данных) ).

Разве нет способа установить для этого поля значение true?

Ниже показано, как выглядят свойства в VS. Если я возвращаю этому свойству значение «none», оно перезаписывает значение с помощью NULL, если я не предоставляю значение в своем коде против значения по умолчанию 0, установленного в базе данных.
Мне кажется, что оно должно заполнять поле 'Значение по умолчанию' здесь, когда он (Visual Studio) генерирует .edmx из базы данных.

properties window

Я попытался установить ' Nullable 'в вышеприведенных свойствах равно' true ', и он по-прежнему показывает то же самое, что и раньше:

public Nullable<bool> notification_sent { get; set; }

В сгенерированном .cs

Если я вручную вставлю значение' false ' в поле «Значение по умолчанию» добавьте следующее:

this.notification_sent = false;

Но не будет ли это перезаписано, когда я сделаю refre sh из базы данных?

1 Ответ

0 голосов
/ 12 февраля 2020

Вы не хотите устанавливать StoreGeneratedPattern в Computed, потому что это означает, что база данных отвечает за создание значения для вас. Вы правы в создании значения, которое может быть обнуляемым со значением по умолчанию, но в этом случае вы должны сопоставить его с обнуляемым логическим значением, например, ваше свойство должно выглядеть примерно так:

bool? NotificationSent { get; set; }

Или какое-то другое имя. Вы можете либо установить значение, либо нет, если нет, база данных установит его для вас как 0 (false). Это не имеет ничего общего с вычислением или нет, это просто значение по умолчанию.

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