Использование MSSQLDataService при обновлении объектов с пустыми строками
MSSQLDataService преобразует пустые строки в NULL
при обновлении объектов.
При построении ограничения, если параметром в проверке на равенство передаётся String.Empty
, то запрос будет сгенерирован как IS NULL и всё сработает так как надо. Это упрощение избавляет от необходимости писать сложные Where-выражения.
Если есть потребность различать NULL
и String.Empty
, то можно унаследоваться от MSSQLDataService и переопределить метод
public virtual string ConvertSimpleValueToQueryValueString(object value)
таким образом, чтобы не выполнялась замена
if (valType == typeof(string))
{
if ((string)value == string.Empty)
return "NULL";
else
return "'" + value.ToString().Replace("'", "''") + "'";
}
Особое внимание следует обратить на эту особенность, если используются импортированные данные или SQL-выражения, которые выполняются в обход сервиса данных.