2011-09-08 32 views
6

说我有一个表,如下所示:获取与实体框架数据长度(以验证对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; } 
} 

所有这些字段的合同都有String。 A string can be a max of about 1,073,741,823 chars。这远远超过了数据库允许的限制。当客户发送数据时,他们可以将真正的长期价值投入到我的合同中。

我想在尝试(并失败)插入之前发现这一点。

我有一个非常好的内部制作的验证框架,将发送故障到客户端。我可以去验证每个项目。但是如果我硬编码字段的长度,那么我会发现它非常快速地失去控制。 (如果一个列的长度必须在两个点上更改,那么当只有一个或另一个被更改时,我开放了错误的方式。)

是否有一种方法(使用实体框架)获取数据项的长度?所以我可以在尝试坚持它之前验证它?

或者还有另一种方法来做这种验证(除了只是插入失败)。

回答