Вы можете создать компонент, который обернет ваш ul / li. Когда этот компонент реализует интерфейс ControlValueAccessor, он может вести себя как любое другое поле ввода, поддерживая директиву formControlName.
Вы можете следовать этой инструкции .
DBNull в основном использовался для работы с типами значений, не допускающими значения NULL, до .NET 2.0. Из-за дизайна ADO.NET вы не сможете избежать DBNull, если не выберете более прямой подход. DBNull встроен в ядро ADO.NET, поэтому вам придется научиться жить с этим, если вы хотите продолжать его использовать.
Если вы предоставляете свои собственные объекты транспорта данных вместо того, чтобы полагаться на общую Систему .Data, вы можете проверить (при чтении результатов с помощью средства чтения данных), имеет ли значение null, но вам понадобится какой-то способ сгенерировать строго типизированные объекты и сопоставления, потому что это действительно утомительная работа.
В определенной степени насколько мне известно, DBNull встроен в конструкцию ADO.NET, и лучший способ создания приложений, если вы его используете, - это объединить (нормализовать) DBNull и null. В принципе, предоставьте свой собственный класс DbConvert, который перехватывает DBNull и возвращает фактическую нулевую ссылку, если значение равно DBNull. Это минимальное требование, но как только это будет выполнено, у вас будет меньше плавающих значений DBNull, о которых стоит беспокоиться.
Прошло некоторое время с тех пор, как я использовал типизированные наборы данных, но в своем старом коде я вижу, что использует атрибут codegen: nullValue
. Я не думаю, что он поддерживается дизайнером, по крайней мере, в VS2005 (который я использовал для этого проекта), поэтому вам придется открыть файл xsd в редакторе xml и сделать это вручную.
В результате xml будет выглядеть примерно так:
<xs:sequence>
<xs:element
name="MyIntColumn"
codegen:nullValue="0"
type="xs:int"
minOccurs="0" />
<xs:element
name="MyBoolColumn"
codegen:nullValue="false"
type="xs:boolean"
minOccurs="0" />
<xs:element
name="MyDateColumn"
codegen:nullValue="1900-01-01"
type="xs:dateTime"
minOccurs="0" />
</xs:sequence>
Я думаю, что этот пост на форуме ASP.NET поможет решить вопрос: Проблема со строго типизированным набором данных / столбцом, допускающим значение NULL
Единственный способ установить для таких свойств значение null - использовать вспомогательные методы, которые генератор набора данных также создает. Методы названы в честь вашего имя столбца, поэтому в вашем случае вы должны иметь методы в строке данных объект под названием IsApprovingUserNull () и SetApprovingUserNull ().