हो सकता है कि यह एक पुराने धागा है, लेकिन मैं दूसरों के लिए इस पर अपना निष्कर्ष पोस्ट करेंगे:
Let का कहना है कि हम देव env है: एफई 5, CodeFirst, SqlCE 4.0:
public abstract class Entity : IEntity, IEquatable<Entity>
{
public virtual int Id { get; protected set; }
public virtual DateTime LastModified { get; set; }
[DataType(DataType.Date)]
public virtual DateTime CreatedOn { get; set; }
[DataType(DataType.DateTime)]
public virtual DateTime CreatedOn2 { get; set; }
[DataType(DataType.Time)]
public virtual DateTime CreatedOn3 { get; set; }
public virtual DateTime CreatedOn4 { get; set; }
}
वाई वें इस तरह के एक कस्टम मैपिंग:
public EntityMapping()
{
HasKey(e => e.Id);
Property(e => e.Id);
Property(e => e.LastModified).IsRequired().IsConcurrencyToken();
Property(e => e.CreatedOn).IsRequired();
Property(e => e.CreatedOn2).IsRequired();
Property(e => e.CreatedOn3).IsRequired();
Property(e => e.CreatedOn4).IsRequired();
}
यह this पैदा करता है, जिसका अर्थ है कि हम अतिप्रवाह अपवाद होगा।
इस जबकि अभी भी एसक्यूएल सीई 4.0 के साथ काम करने के लिए मैपिंग बदलना:
Property(e => e.CreatedOn).IsRequired().HasColumnType("datetime2");
Property(e => e.CreatedOn2).IsRequired().HasColumnType("date");
Property(e => e.CreatedOn3).IsRequired().HasColumnType("date");
Property(e => e.CreatedOn4).IsRequired().HasColumnType("datetime2");
इस error देता है। एसक्यूएल सर्वर स्टैंडआर्ट 2012 में स्विचिंग समस्या को हल करने लगता है (यह निश्चित रूप से एक समाधान नहीं है - केवल प्रयोग के लिए)। बनाया गया SQL सर्वर स्कीमा this है।
मैं एसक्यूएल में एक विशेषज्ञ नहीं हूं लेकिन ऐसा लगता है कि SQL CE does not support these dates। विकास env के साथ समस्या। बाकी है। डेटटाइम को प्रतिस्थापित किया जा सकता है लेकिन यहां बहुत से रिफैक्टरिंग और tehere ला सकता है।
यह भी याद रखें कि SqlDateTime and DateTime are very different।
समाधान जो मुझे अच्छा लगता है - कोड और प्रोजेक्ट लाइफसाइक्ल के लिए - स्थानीय डीबी और एसक्यूएल स्टैंडअर्ट के बीच स्विच करना है जैसा कि स्टैक ओवरफ्लो से ऊपर दिए गए लिंक में से एक द्वारा कस्टम फ्लुएंएपी मैपिंग सेटिंग्स के साथ मॉडल निर्माण या दोनों को बराबर करने के लिए किया गया है ।
सुरक्षा नेट के रूप में custom convention in EF पेश करना भी अच्छा लगता है।
यदि किसी के पास कोड के लिए और देव-उत्पादन दोनों के लिए एक बेहतर ऑल-राउंड समाधान है, तो इसे पोस्ट करें।