के साथ बुलाया नहीं गया है, इसलिए मैं इस समस्या के साथ 4.1 (अब मैं 4.3 पर हूं) से संघर्ष कर रहा हूं। यह बीज विधि कहा जाता है करने के लिए मुझे लगता है कि, सभी मुझे क्या करना होना चाहिए निम्नलिखित है:बीज विधि को EntityFramework CodeFirst
1) sqlserver 2 पर एक खाली डेटा सूची बनाएं) नीचे कोड निष्पादित करें:
Database.SetInitializer(new DropCreateDatabaseAlways<SiteDB>());
मैं अपने SiteDB इस प्रकार परिभाषित किया गया है:
public class SiteDBInitializer :
DropCreateDatabaseAlways<SiteDB>
{
protected override void Seed(SiteDB db)
{
... (break point set here that never gets hit)
मुझे लगता है क्योंकि यह मेरी टेबल बनाता है, लेकिन बीज प्रणाली को बुलाती है कभी नहीं करता है जैसे मैं बहुत सरल कुछ कमी की जानी चाहिए।
यह और स्पष्ट करने के लिए, यहां एक पूर्ण उदाहरण है जिसमें सभी कोड शामिल हैं। जब मैंने इसे चलाने के लिए, बीज कभी नहीं कहा जाता हो जाता है:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Data.Entity;
namespace ConApp
{
internal class Program
{
private static void Main(string[] args)
{
Database.SetInitializer(new SiteDBInitializer());
using (var db = new SiteDB())
{
var x = db.Customers;
}
}
}
public class SiteDB : DbContext
{
public DbSet<Customer> Customers { get; set; }
}
public class Customer
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public string LastName { get; set; }
}
public class SiteDBInitializer :
DropCreateDatabaseAlways<SiteDB>
{
protected override void Seed(SiteDB db)
{
db.Customers.Add(new Customer() {LastName = "Kellner"});
db.Customers.Add(new Customer() {LastName = "Jones"});
db.Customers.Add(new Customer() {LastName = "Smith"});
db.SaveChanges();
}
}
}
मुझे लगता है कि आपका मतलब है: डेटाबेस.SetInitializer (नया SiteDBInitializer()); मैंने कोशिश की और यह भी काम नहीं किया। –
@ पीटर कैलरर जब आप पहली बार कुछ करते हैं (उदाहरण के लिए क्वेरी)। क्या आपने एक क्वेरी निष्पादित करने का प्रयास किया था? – Eranga
हाय एरंगा और जेडब्ल्यू। मैंने अपने प्रश्न को एक छोटा कंसोल ऐप शामिल करने के लिए अपडेट किया है जो मुझे विश्वास है कि बीज को बुलाया जाना चाहिए और ऐसा नहीं है। यदि आप एक नज़र डाल सकते हैं (और इसे पेस्ट भी कर सकते हैं और इसे चला सकते हैं), तो मैं वास्तव में इसकी सराहना करता हूं। मुझे यकीन है कि कुछ आसान है जो मुझे याद आ रही है लेकिन यह महीनों के लिए पागल हो रही है। –