Получите длину данных с структурой объекта (для проверки длин данных на службе WCF)

сказать, у меня есть таблица, которая выглядит так:

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 Управление очень очень быстро. (Если длина столбца должна быть изменена в двух местах, то я открываю путь для ошибок, когда изменяется только один или другой.)

Есть ли способ (с структурой объекта), чтобы получить длину элемента данных? Таким образом, я могу подтвердить его до того, как он пытается сохранить его?

Или есть еще один способ сделать эту проверку (за исключением просто не удавании вставки).

6
задан Community 23 May 2017 в 12:02
поделиться