2011-09-08 6 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 (साबुन) सेवा के साथ इस तालिका को भरने के। मेरा डेटा अनुबंध इस तरह दिखता है:

[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 है। एक string can be a max of about 1,073,741,823 chars। यह उन सीमाओं पर अच्छी तरह से है जो डेटाबेस की अनुमति देगा। जब कोई ग्राहक डेटा भेजता है तो वे वास्तव में मेरे अनुबंध में वास्तव में लंबे मूल्य डाल सकते हैं।

मैं एक डालने का प्रयास करने से पहले इसे ढूंढना चाहता हूं (और असफल)।

मेरे पास एक बहुत अच्छा घर बनाने वाला सत्यापन फ्रेमवर्क है जो क्लाइंट को एक दोष भेज देगा। और मैं जा सकता था और प्रत्येक आइटम के लिए एक सत्यापन में डाल दिया। लेकिन अगर मैं खेतों की लंबाई को हार्डकोड करता हूं तो मुझे लगता है कि यह बहुत नियंत्रण से बाहर हो रहा है। (यदि कॉलम की लंबाई दो धब्बे में बदलनी है, तो मैं केवल एक या दूसरे को बदलते समय बग के लिए रास्ता खोल रहा हूं।)

क्या कोई तरीका है (इकाई ढांचे के साथ) डेटा आइटम की लंबाई? तो मैं इसे जारी रखने की कोशिश करने से पहले इसे मान्य कर सकता हूं?

या इस सत्यापन को करने का एक और तरीका है (केवल डालने में असफल होने के अलावा)।

उत्तर

0

आप मेटाडाटा वर्कस्पेस का उपयोग कर सकते हैं और अपने ऑब्जेक्ट कॉन्टेक्स्ट पर सेविंग चेंज ईवेंट को संभाल सकते हैं।

Field max length in Entity framework

संबंधित मुद्दे