4.1'den beri bu sorunla uğraşmaktayım (şimdi 4.3'teyim).tohum yöntemi EntityFramework ile çağrılmadı CodeFirst
1) SQLServer 2 boş bir veri katalog oluşturma) aşağıdaki kodu yürütün::
Database.SetInitializer(new DropCreateDatabaseAlways<SiteDB>());
Yapmam olması gereken tüm şudur, tohum yöntemi denir almak Bana öyle geliyor Ben şöyle benim SiteDB tanımlanmıştır:
public class SiteDBInitializer :
DropCreateDatabaseAlways<SiteDB>
{
protected override void Seed(SiteDB db)
{
... (break point set here that never gets hit)
bu benim tablolar oluşturur, ancak tohum yöntemini çağıran asla çünkü ben çok basit bir şey eksik gerekir gibi hissediyorum.
Bunu daha açık hale getirmek için, burada tüm kodu içeren tam bir örnek verilmiştir. Onu çalıştırdığınızda, tohum denir geçmez:
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();
}
}
}
Şunu mu demek istediniz: Database.SetInitializer (new SiteDBInitializer()); Bunu denedim ve işe yaramadı. –
@PeterKellner İlk kez bir şey yaptığınızda (örn. Sorgulama) çağrılır. Bir sorguyu çalıştırmayı denediniz mi? – Eranga
Merhaba Eranga ve J.W. Sorumluluğumun, tohumun çağrılması gerektiğine inandığım bir önemsiz konsol uygulaması içerecek şekilde güncelledim. Bir göz atabilirseniz (hatta yapıştırıp çalıştırırsanız), gerçekten takdir ediyorum. Eminim eksik bir şey var eminim ama aylardır çıldırıyor. –