Атрибут [DisplayFormat] используется только в EditorFor / DisplayFor, а не в необработанных HTML-API, таких как TextBoxFor. Я получил это, выполнив следующие действия:
Model:
[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }
Вид:
@Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate)
@Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
@Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)
Выход: 30/12/2011
Ссылки по теме:
Вы может создать уникальный индекс, который принимает несколько значений NULL с предложением WHERE
. См. Ответ ниже .
Невозможно создать ограничение UNIQUE и разрешить значения NULL. Вам нужно установить значение по умолчанию NEWID ().
Обновите существующие значения до NEWID (), где NULL, перед созданием ограничения UNIQUE.
То, что вы ищете, действительно является частью стандартов ANSI SQL: 92, SQL: 1999 и SQL: 2003 т.е. ограничение UNIQUE должно запрещать дублирование значений, отличных от NULL, но принимать несколько значений NULL.
В мире Microsoft SQL Server, однако, допускается один NULL, но нельзя использовать несколько NULL ...
В SQL Server 2008 вы можете определить уникальный фильтрованный индекс на основе предиката. исключая NULL:
CREATE UNIQUE NONCLUSTERED INDEX idx_yourcolumn_notnull
ON YourTable(yourcolumn)
WHERE yourcolumn IS NOT NULL;
В более ранних версиях вы можете прибегнуть к VIEWS с предикатом NOT NULL, чтобы применить ограничение.
Создайте представление, которое выбирает только столбцы, отличные от NULL
, и создайте УНИКАЛЬНЫЙ ИНДЕКС
в представлении:
CREATE VIEW myview
AS
SELECT *
FROM mytable
WHERE mycolumn IS NOT NULL
CREATE UNIQUE INDEX ux_myview_mycolumn ON myview (mycolumn)
Обратите внимание, что вам нужно выполнить INSERT
и UPDATE
в представлении вместо таблицы.
Вы можете сделать это с триггером INSTEAD OF
:
CREATE TRIGGER trg_mytable_insert ON mytable
INSTEAD OF INSERT
AS
BEGIN
INSERT
INTO myview
SELECT *
FROM inserted
END
Можно создать уникальное ограничение для кластеризованного индексированного представления
Вы можете создать представление следующим образом:
CREATE VIEW dbo.VIEW_OfYourTable WITH SCHEMABINDING AS
SELECT YourUniqueColumnWithNullValues FROM dbo.YourTable
WHERE YourUniqueColumnWithNullValues IS NOT NULL;
и уникальное ограничение, подобное этому:
CREATE UNIQUE CLUSTERED INDEX UIX_VIEW_OFYOURTABLE
ON dbo.VIEW_OfYourTable(YourUniqueColumnWithNullValues)
Возможно, рассмотрите триггер « INSTEAD OF
» и выполните проверку самостоятельно? С некластеризованным (неуникальным) индексом для столбца для включения поиска.