2011-04-15 10 views
24

की लंबाई को परिभाषित करने के शीर्षक से स्पष्ट है:इकाई की रूपरेखा 4.1 कोड पहले दृष्टिकोण: कैसे गुण

कैसे है यह कोड पहले दृष्टिकोण में इकाई की रूपरेखा 4.1 बताने के लिए, कि मैं कुछ गुण (चाहते हैं प्रकार के विशेष रूप से संभव यदि इस उदाहरण अपने मॉडल

public class Book{ 
    public string Title { get; set; } //should be 256 chars 
    public string Description {get;set} //should be nvarchar(max) 
} 

के लिए है कि यह कैसे परिभाषित किया जा सकता है स्ट्रिंग) 256 की लंबाई, या nvarchar (अधिकतम), या ...

तो है करने के लिए?

अग्रिम धन्यवाद!

+0

[एंटिटी फ्रेमवर्क सत्यापन भ्रम की अधिकतम डुप्लिकेट - '128' की अधिकतम स्ट्रिंग लंबाई।] (Http://stackoverflow.com/questions/5414611/entity-framework-validation-confusion- अधिकतम- स्ट्रिंग- लम्बाई-of- 128) –

+0

@ लाडिस्लाव हाँ यह लगभग एक डुप्लिकेट है, लेकिन थोड़ा अलग है! मैंने यह पता लगाया कि कैसे: उदाहरण के लिए डेटा एन्नोटेशन का उपयोग करें [स्ट्रिंग लम्बाई (1000)] या [अधिकतम लंबाई] –

उत्तर

43

ईएफ 4.1 आरटीडब्ल्यू डिफ़ॉल्ट लंबाई में एसक्यूएल सीई के लिए SQL सर्वर और nvarchar (4000) के लिए nvarchar (अधिकतम) है। लंबाई उपयोग को बदलने के लिए या तो StringLength या MaxLength एनोटेशन या धाराप्रवाह मानचित्रण HasMaxLength:

[StringLength(256)] 
public string Title { get; set; } 

या

[MaxLength(256)] 
public string Title { get; set; } 

या

modelBuilder.Entity<Book>() 
      .Property(p => p.Title) 
      .HasMaxLength(256); 
+1

हम्म! क्या आप कृपया बता सकते हैं कि SQL सर्वर 2008 R2 किसी भी स्ट्रिंग प्रॉपर्टी के लिए डिफ़ॉल्ट nvarchar (128) द्वारा क्यों बनाता है (और nvarchar (max) जैसा कि आप कहते हैं)? –

+1

क्योंकि आप आरसी का उपयोग कर रहे हैं और नवीनतम अंतिम आरटीडब्ल्यू संस्करण नहीं। –

+8

'[स्ट्रिंग लम्बाई]' केवल प्रमाणीकरण उद्देश्यों के लिए उपयोग किया जाता है न कि डेटाबेस की बाधाओं के रूप में। – Jalal

3

के रूप में मेरी टिप्पणी में कहा गया है, यह आसान है।
DataAnnotation से [StringLength(1000)] या [MaxLength] का उपयोग करें।

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

  • कोई संबंधित समस्या नहीं^_^