मैं अपने DB में एक टेबल CompanyDetails
कहा जाता है। इसमें CharacterID varchar(255)
नामक कॉलम है। मैं सिर्फ एक NULL
स्तंभ के लिए एक NOT NULL
स्तंभ से यह बदल दिया है। मैंने मॉडल ब्राउज़र में और साथ ही EDMX फ़ाइल व्यूअर में 'डेटाबेस से अद्यतन मॉडल ...' आदेश चलाया।इकाई फ्रेमवर्क - डेटाबेस से मॉडल अपडेट करें ... - कोई अपडेट नहीं होता है!
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
मैं भी अगले संपत्ति शामिल है और आप देखेंगे कि इसे सही ढंग से के रूप में चिह्नित किया गया है:
/// <summary>
/// There are no comments for Property CharacterId in the schema.
/// </summary>
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(IsNullable=false)]
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string CharacterId
{
get
{
return this._CharacterId;
}
set
{
this.OnCharacterIdChanging(value);
this.ReportPropertyChanging("CharacterId");
this._CharacterId = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, false);
this.ReportPropertyChanged("CharacterId");
this.OnCharacterIdChanged();
}
}
private string _CharacterId;
partial void OnCharacterIdChanging(string value);
partial void OnCharacterIdChanged();
/// <summary>
/// There are no comments for Property URLDomain in the schema.
/// </summary>
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
[global::System.Runtime.Serialization.DataMemberAttribute()]
public string URLDomain
{
get
{
return this._URLDomain;
}
set
{
this.OnURLDomainChanging(value);
this.ReportPropertyChanging("URLDomain");
this._URLDomain = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value, true);
this.ReportPropertyChanged("URLDomain");
this.OnURLDomainChanged();
}
}
private string _URLDomain;
partial void OnURLDomainChanging(string value);
partial void OnURLDomainChanged();
आप इसे की एक विशेषता है कि ध्यान देंगे: यह क्या यह डिजाइनर में बनाया है:
[global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute()]
क्या देता है? मैं अपने डीबी स्कीमा में सरल परिवर्तन कैसे कर सकता हूं और वास्तव में उन परिवर्तनों के आधार पर अपडेट करने के लिए इकाई फ्रेमवर्क प्राप्त कर सकता हूं ?! मुझे हर बार हर बार मॉडल को छोड़ना और फिर से बनाना पड़ा था!
+1। यह सही है। यदि आपने पहले ही सीएसडीएल में एक संपत्ति जेनरेट की है, तो आपको इसे मैन्युअल रूप से अपडेट करना होगा। लेकिन एसएसडीएल हमेशा खरोंच से पुनर्जीवित किया जाएगा। ईएफ मानता है कि आप अपने सीएसडीएल अनुकूलन चाहते हैं। –
धन्यवाद क्रेग। एक अतिरिक्त नोट के रूप में, मेरा मानना है कि आप उपकरण edmgen (http://msdn.microsoft.com/en-us/library/bb387165.aspx) स्विच/मोड के साथ उपयोग कर सकते हैं: FromSSDLGeneration या/मोड: FullGeneration की पीढ़ी के लिए मजबूर करने सीएसडीएल + एमएसएल या सभी ब्लॉक, अगर आपको यही चाहिए। –
मुझे इन 3 फाइलें कहां मिलती हैं और क्या मुझे हर बार उन्हें संपादित करना होता है जब मैं इस तरह के बदलाव करता हूं? मैंने अपनी हार्ड ड्राइव पर एक खोज की है और इन फ़ाइलों को बिल्कुल नहीं मिल रहा है इसलिए मुझे आश्चर्य है कि क्या वे आंतरिक रूप से जेनरेट किए गए हैं, और यदि हां, तो मैं उन्हें कैसे खोलूं? (क्या एक नया सवाल है!) :) –