markiert sind. Ich benutze CodeFirst Entity Framework 5. Ich habe eine Klasse, die einen Benutzer darstellt.Lassen Sie leere Zeichenfolgen für Felder zu, die mit PhoneAttribute oder UrlAttribute
public class User
{
[Key]
public int UserId { get; set; }
[Url]
[DataType(DataType.Url)]
[Required(AllowEmptyStrings= true)]
public string WebSite { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Phone { get; set; }
[Phone]
[DataType(DataType.PhoneNumber)]
[Required(AllowEmptyStrings = true)]
public string Fax { get; set; }
}
Ich mag die Validierungs Mechanik für Phone
und Url
Attribute viel, aber leider die Validierung fehlschlägt, wenn Felder mit diesen Attributen markiert sind leere Strings, die ich will eigentlich ermöglichen. [Required(AllowEmptyStrings = true)]
scheint nicht mit Phone
oder Url
Attribute zu arbeiten. Dasselbe gilt für einige andere DataAnnotations-Attribute wie EmailAddress
.
Gibt es eine Möglichkeit, leere Zeichenfolgen für Felder zuzulassen, die mit solchen Attributen gekennzeichnet sind?
Ich war nicht Modell Binder verwendet wird. Ich schrieb Datenimporteur und die Quelldaten enthalten leere E-Mails und Telefone. Ich denke, ich sollte einfach leere Zeichenfolgen von der Quelle in Nullen konvertieren. Danke für die Erklärung! –
@ Nu-hin. Ihr Datenbankadministrator wird Ihnen in Zukunft danken, wenn Sie sich daran machen, mehrdeutige sinnlose Werte wie leere Strings zu bereinigen und sie durch null zu ersetzen. Null ist undefiniert oder unbekannt. Eine leere String-Telefonnummer ist nicht definiert oder unbekannt. Es macht immer Spaß, Jahre später mit einer db zu arbeiten und eine Mischung aus leeren Strings, Whitespace Strings und der immer nützlichen "NO PHONE NUMBER" im Telefonnummernfeld zu finden. –
Das scheint ziemlich wenig hilfreich zu sein. Ja in * manchen * Situationen bedeutet die Abwesenheit eines Wertes "nicht bekannt", aber "definitiv leer" bedeutet etwas ganz anderes als "nicht bekannt". Es gibt also Fälle, in denen eine leere Zeichenfolge kein "sinnloser Wert" ist. –