Привязка модели ASP.NET MVC 2 RC2 к столбцу NVARCHAR NOT NULL - PullRequest
1 голос
/ 07 апреля 2010

ОБРАТИТЕ ВНИМАНИЕ: я ответил на свой вопрос со ссылкой на ответ на аналогичный вопрос. Я приму этот ответ, как только мне позволят (если никто не придумает лучшего ответа тем временем).

У меня есть столбец базы данных, определенный как NVARCHAR(1000) NOT NULL DEFAULT(N'') - другими словами, текстовый столбец, не имеющий значения NULL, со значением по умолчанию, пустым.

У меня есть класс модели, сгенерированный конструктором классов Linq-to-SQL, который правильно определяет свойство как , а не , допускающее нулевое значение.

У меня есть TextAreaFor на мой взгляд для этого свойства. Я использую UpdateModel в своем контроллере, чтобы получить значение из формы и заполнить объект модели.

Если я просматриваю веб-страницу и оставляю текстовое поле пустым, UpdateModel настаивает на установке для свойства NULL вместо пустой строки. (Даже если я установлю значение пустым в коде до вызова UpdateModel, оно все равно будет перезаписано с помощью NULL). Что, конечно, приводит к сбою последующего обновления базы данных.

Я мог бы проверить все такие свойства для NULL после вызова UpdateModel, но это кажется смешным - конечно, должен быть лучший способ?

Пожалуйста, не говорите мне, что для такого простого сценария мне нужна специальная папка-модель ...!

Ответы [ 2 ]

2 голосов
/ 07 апреля 2010

Может быть дубликат или что-то вроде этого:

Проблема данных формы привязки MVC

Боюсь, что для этого понадобится специальная модель. ;)

0 голосов
/ 07 апреля 2010

Возможно, вы захотите использовать частичную реализацию класса вашей сущности, которая реализует обработчик изменения свойства on для этого конкретного свойства. Когда вы обнаружите, что свойство было изменено на NULL, просто измените его на string.Empty. Таким образом, каждый раз, когда NULL присваивается свойству, оно сбрасывается в пустую строку.

...