Я бы не сказал, что вам нужно засорять ваш код чеками. Я использую один метод расширения:
public static class StringExtensions
{
public static string NullIfEmpty(this string s)
{
return string.IsNullOrEmpty(s) ? null : s;
}
}
Тогда напишите свой класс сущности так:
public class MyEntity
{
private string name;
public string Name
{
get { return name; }
set { name = value.NullIfEmpty(); }
}
}
Я думаю, что лучше явно указать, что вы хотите этого поведения, потому что во многих случаях пустая строка может быть допустимым значением в базе данных.
Использование пользовательского типа тоже работает; однако, мне всегда кажется, что это «аннулирующее» поведение должно быть поведением сущности , а не mapper , и что у самой сущности должен быть контракт, который говорит Я игнорирую пустые строки. "