2011-09-08 12 views
6

Say Mam tabeli, który wygląda tak:Get długość danych z Entity Framework (do sprawdzania poprawności danych na długości WCF Service)

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) 

I wypełnić tę tabelę z (SOAP) usług WCF. Moja umowa dotycząca danych wygląda następująco:

[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; } 
} 

Dla wszystkich tych pól umowa ma numer String. A string can be a max of about 1,073,741,823 chars. To przekracza limity, na które pozwala baza danych. Kiedy klient wysyła dane, może umieścić naprawdę długie wartości w mojej umowie.

Chciałbym to znaleźć, zanim spróbuję (i zawiodę) wstawkę.

Mam bardzo dobre wewnętrzne ramy sprawdzania poprawności, które wyślą błąd do klienta. I mógłbym przejść walidację dla każdego przedmiotu. Ale jeśli utknę na długości pól, to bardzo szybko wymknę się spod kontroli. (Jeśli długość kolumny musi zostać zmieniona w dwóch miejscach, to otwieram drogę do błędów, gdy tylko jedna lub druga zostanie zmieniona.)

Czy istnieje sposób (z ramą encji), aby uzyskać długości elementu danych? Czy mogę go zweryfikować przed próbą utrzymania go?

Czy istnieje inny sposób wykonania tej procedury sprawdzania poprawności (z wyjątkiem po prostu niepowodzeniem wstawiania).

Odpowiedz

Powiązane problemy