दिलचस्प पोस्ट
वहाँ पीएमएम और pmax प्रत्येक लेने na.rm है, क्यों नहीं psum? सामग्री डिज़ाइन दिशानिर्देशों की तरह दिखाई देने वाला एक SearchView बनाना स्क्रॉलव्यू स्क्रॉल के अंदर एंड्रॉइड वेबव्यू केवल स्क्रॉलएव्यू कैसे एक चार सरणी का उपयोग करें और ऊपरी मामले में लोअर केस अक्षरों को बदलने के लिए, और इसके विपरीत स्प्रिंग-बूट जेपीए हाइबरनेट में> 4 <24 के बाद डीबी का कनेक्शन मर जाता है यह फ़ंक्शन प्रत्येक बार एक अलग मान क्यों वापस करता है? Google मानचित्र एपीआई V2 'मानचित्र लोड करने में विफल Google सर्वर से संपर्क नहीं किया जा सका जावास्क्रिप्ट PHP के इन_अरे के बराबर () डबल क्लिकिंग JAR फ़ाइल कमांड प्रॉम्प्ट नहीं खोलता है मैं node.js http.Client के साथ एक HTTP प्रॉक्सी का उपयोग कैसे कर सकता हूं? हम तो प्रतिलिपि क्यों चलते हैं? लिनक्स कर्नेल: सिस्टम कॉल hooking उदाहरण React.js: सामग्री के लिए चालू घटना बदलेंअनुमति पीडीएफ में एसवीजी कन्वर्ट करें मैं TypeScript में ऑब्जेक्ट को गतिशील रूप से गुण कैसे निर्दिष्ट कर सकता हूं?

इकाई फ़्रेमवर्क डाटाबेस.SetInitializer बस काम नहीं कर रहा है

मुझे इस प्रकार की "रहस्यमय" समस्या हो रही है मैं वर्तमान में एंटिटी फ्रेमवर्क 4.1 कोड का उपयोग कर रहा हूं, मेरे एएसपी.नेट एमवीसी 3 एप्लिकेशन के साथ पहला दृष्टिकोण, यह कल तक अच्छा काम करता था …

कुछ सचमुच बुरा हुआ जिससे मेरे डाटाबेस.SetInitializer ने काम करना बंद कर दिया। व्याख्या की:

मेरे पास यह सरल मॉडल है

public class User { public int Id { get; set; } public int RoleId { get; set; } [Required] [StringLength(50)] [DataType(DataType.Text)] public string Login { get; set; } [Required] [StringLength(150)] [DataType(DataType.EmailAddress)] public string Email { get; set; } [Required] [StringLength(32)] [DataType(DataType.Password)] public string Password { get; set; } [DataType(DataType.DateTime)] public DateTime RegisteredDate { get; set; } public virtual Role Role { get; set; } } 

और यहां मेरा डीबीसीटीन्टेक्ट है

 public class MyContext : DbContext { public DbSet<Models.User> Users { get; set; } } 

इसके अलावा मैं सेटअप कस्टम initializer (परीक्षण के लिए)

 public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext> { } 

अब मैं पहले से ही Web.config में सेटअप कनेक्शन स्ट्रिंग (MyContext के रूप में नाम के साथ) तो Global.asax में मैं इस साधारण कोड को Application_Start () विधि में बुला रहा हूँ

 Database.SetInitializer(new MyInitializer()); 

लेकिन समस्या यह है कि Database.SetInitializer WONT किसी भी डेटाबेस बनाते हैं, और भी बदतर है, यह भी संदर्भ से तालिका के साथ मौजूदा डेटाबेस को भरने की कोशिश भी नहीं … मैंने डिबग करने की कोशिश की, …

मुझे एक समाधान मिला, इस लाइन की कोड का उपयोग करना है

 var ctx = new MyContext(); ctx.Database.Initialize(true); 

तो यहाँ मैं सिर्फ डीबी बनाने के लिए कोड को मजबूर कर रहा हूं …

लेकिन तथ्य डेटाबेस.SetInitializer अभ्यस्त काम वास्तव में परेशान है … यह पहले बहुत अच्छा काम करता है, मुझे नहीं पता कि क्या हुआ। मैं खिड़कियां घटना पत्रिका, एसक्यूएल सर्वर लॉग्स में देखा … लेकिन कुछ भी नहीं है बस चुप्पी लेकिन शायद मैं सिर्फ गलत जगह में देख रहा हूं? : एस

क्या कोई मुझे बता रहा है कि क्या हो रहा है?

पीएस मैं विजुअल वेब डेवलपर 2010 + SQL सर्वर एक्सप्रेस 2008 R2 का उपयोग कर रहा हूँ

Solutions Collecting From Web of "इकाई फ़्रेमवर्क डाटाबेस.SetInitializer बस काम नहीं कर रहा है"

डेटाबेस केवल तभी बनाया जाएगा जब आप वास्तव में संदर्भ का उपयोग करेंगे।

यदि आपने अपने प्रारंभिक में बीज विधि को निम्न प्रकार से अधिसूचित किया है:

 protected override void Seed(MyContext context){...} 

बीज कोड केवल तब चलाएगा जब आप MyContext का एक उदाहरण उपयोग करेंगे।

यही कारण है कि जब आप उपयोग करते हैं तो यह काम करता है

 var ctx = new MyContext(); ctx.Database.Initialize(true); 

आप इसे हमेशा Global.asax.cs में Application_Start () विधि में अपने संदर्भ का उपयोग करके इसे बनाने के लिए बाध्य कर सकते हैं जैसे:

  System.Data.Entity.Database.SetInitializer(new MyInitializer()); MyContext db = new MyContext(); db.Database.Initialize(true); //or even something like db.Users.Count(); 

या इसे बाद में बनाया जाएगा जब आप अपने संदर्भ का उपयोग करेंगे ऐसा लग सकता है जैसे कि यह काम करना बंद कर दिया था क्योंकि आपने कुछ कोड को हटा दिया था जो प्रांतीय प्रस्तुति पर संदर्भ का उपयोग करेगा।

एक डेटाबेस बनाने का एक अन्य तरीका

 Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>()); var context = new MyContext(); context.Database.Create(); 

Global.asax.cs में

 Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, DbMigrationConfig>()); 

जहां DbMigrationConfig माइग्रेशन फ़ोल्डर में कॉन्फ़िगरेशन क्लास है जिसे मैं नाम दिया गया था। यह भी सुनिश्चित करें कि आप कॉन्फ़िगर के कन्स्ट्रक्टर में स्वचालित माइग्रेशन को सक्षम करते हैं

मेरे कोड की पहली परिभाषा के साथ मेरे पास एक ही समस्या थी और इसे एक क्लास फ़ाइल में परिभाषित कई डीबीआईइलाइज़र करने के लिए संकुचित किया गया था। तो वाक्य रचना को जांचने के बाद अंगूठे का नियम पालन करना है और इसका प्रयोग निम्न है:

1) एक भौतिक फ़ाइल में केवल एक प्रारंभिक परिभाषा है
2) अलग फाइलों में डीबीसीओन्टेक्स और इनिलाइज़र को परिभाषित करें

HTH