19

मैं एंटिटी फ्रेमवर्क कोड फर्स्ट के साथ एक टेबल में 'टाइम (7)' कॉलम बनाने की कोशिश कर रहा हूं। यह मेरा इकाई है:एंटिटी फ्रेमवर्क कोड में एसक्यूएल 'टाइम' टाइप पहले

public class ShiftDetail 
{ 
    public long Id { get; set; } 

    [Required] 
    public int DayOfWeek { get; set; } 

    [Required] 
    [Column(TypeName="time")] 
    public DateTime StartTime { get; set; } 

    [Required] 
    [Column(TypeName = "time")] 
    public DateTime EndTime { get; set; } 

    public long ShiftId { get; set; } 
    public virtual Shift Shift { get; set; } 
} 

आप मैं कॉलम StartTime और ENDTIME को "समय" के लिए डेटाबेस प्रकार सेट करने के कोशिश कर रहा हूँ देख सकते हैं, लेकिन मैं इस त्रुटि मिलती है:

(112,12) : error 2019: Member Mapping specified is not valid. The type 'Edm.DateTime[Nullable=False,DefaultValue=,Precision=]' of member 'StartTime' in type 'ShiftDetail' is not compatible with 'SqlServer.time[Nullable=False,DefaultValue=,Precision=7]' of member 'StartTime' in type 'CodeFirstDatabaseSchema.ShiftDetail'.

मैं TypeName = "समय (7)" के साथ भी करने की कोशिश की किया है, लेकिन मैं यह अन्य त्रुटि मिलती है:

(104,6) : error 0040: The Type time(7) is not qualified with a namespace or alias. Only primitive types can be used without qualification.

मैं कैसे कोड पहले के साथ एक समय स्तंभ बना सकते हैं? (अधिमानतः धाराप्रवाह एपीआई के बिना)

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

+0

यदि आप ईडीएमएक्स डिजाइनर का उपयोग करते हैं, तो आपके समय कॉलम के लिए कौन सा डेटा प्रकार चुनता है? आपको शायद 'डेटटाइम' का उपयोग नहीं करना चाहिए, लेकिन मुझे यकीन नहीं है कि सही प्रकार क्या है, और यह पता लगाने का एक आसान तरीका है। – hvd

उत्तर

25

यदि आप Time डेटाबेस में टाइप करना चाहते हैं तो आपको अपने आवेदन में 24 घंटे चक्र के साथ TimeSpan का उपयोग करना होगा। DateTime समय का प्रतिनिधित्व नहीं है।

+1

हां महोदय, आप सही हैं। धन्यवाद – Escobar5

+1

असल में, जब आप दिन का समय स्टोर करना चाहते हैं, तो इकाइयों में डेटटाइम का उपयोग करने के दो अच्छे कारण हैं। .NET 4 का टाइमस्पैन फॉर्मेटर एएम/पीएम का बिल्कुल समर्थन नहीं करता है, और यूई नियंत्रण जैसे डेवएक्सप्रेस के कारण से टाइमस्पेन्स से जुड़ना नहीं है। मतलब मुझे डेटटाइम का उपयोग करने के लिए मजबूर किया गया है और अब मैं उपयोग करने के लिए इच्छित समय (0) 'कॉलम के साथ ईएफ 6 को मेल करने का एक तरीका ढूंढ रहा हूं। – jnm2

+0

ईजी। http://stackoverflow.com/questions/12078603/need-to-format-timespan-ado-net-datacolumn-as-am-pm – jnm2

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