сказать, у меня есть таблица, которая выглядит так:
create table #Employee (
EmployeeId int identity(1,1) not null,
FirstName varchar(100) not null,
LastName varchar(100) not null,
Suffix varchar(10) not null,
Prefix varchar(10) not null,
Address varchar(500) null)
и я заполняю эту таблицу с помощью службы WCF (SOAP). Мои данные договор Похоже, это:
[DataContract]
public class Employee
{
[DataMember]
public virtual string FirstName { get; set; }
[DataMember]
public virtual string LastName { get; set; }
[DataMember]
public virtual string Suffix { get; set; }
[DataMember]
public virtual string Prefix { get; set; }
[DataMember]
public virtual string Address { get; set; }
}
Контракт имеет строку
для всех этих полей. Строка может быть максимум около 1 073 741,823 символа . Это хорошо по сравнению с пределами, что база данных будет Разрешить. Когда клиент отправляет данные, они могут поставить в действительно очень длинные значения в мой договор.
Я хотел бы найти это, прежде чем пытаться (и потерпеть неудачу) вставку.
У меня очень хороший Дом сделали валидационную структуру, которая отправит неисправность клиенту. И я мог бы пойти и поставить в проверку для каждого элемента. Но если я жесткокорую длину полей, то я вижу, f Управление очень очень быстро. (Если длина столбца должна быть изменена в двух местах, то я открываю путь для ошибок, когда изменяется только один или другой.)
Есть ли способ (с структурой объекта), чтобы получить длину элемента данных? Таким образом, я могу подтвердить его до того, как он пытается сохранить его?
Или есть еще один способ сделать эту проверку (за исключением просто не удавании вставки).