2017-04-07 50 views
-1

我需要創建一個數據庫,其中已經加載了數據。 它不會返回任何錯誤,只是不workinkg。數據庫完全創建但空。我認爲,問題出在了AppConfig數據庫初始化工具不起作用

語境:

namespace Domain.DAL 
{ 
    public class LandingContext : DbContext 
    { 
     public LandingContext() : base(Properties.Settings.Default.ConString) 
     { 
     Database.SetInitializer<LandingContext>(new CreateDatabaseIfNotExists<LandingContext>()); 
     Database.Initialize(true); 
     } 

    public DbSet<Package> Packages { get; set; } 
    public DbSet<AbsProduct> Products { get; set; } 

    } 
} 

初始化程序:

namespace Domain.DAL 
{ 
    public class LandingInitializer : CreateDatabaseIfNotExists<LandingContext> 
    { 
     protected override void Seed(LandingContext context) 
     { 
      Car kangoo = new Car(100, 2, "kangoo"); 
      context.Products.Add(kangoo); 
      context.SaveChanges(); 

      base.Seed(context); 
     } 

    } 
} 

而且AppConfig的:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="Domain.Properties.Settings.ConString" connectionString="Data Source=ENZO-PC;Initial Catalog=GLB-Landing;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    <contexts> 
    <context type=" DAL.LandingContext, Domain"> 
     <databaseInitializer type="DAL.LandingInitializer, Domain" /> 
    </context> 
    </contexts> 
</configuration> 
+0

你在哪裏調用方法 '種子'? – jdweng

+0

我應該怎樣打電話給他,在哪裏?從上下文我無法訪問初始化程序 – Enzo95

+0

任何你想要的地方。可能在您獲得產品後,您將其放入數據庫中。 – jdweng

回答

0

我reeplace

Database.SetInitializer<LandingContext>(new CreateDatabaseIfNotExists<LandingContext>()); 

爲:

Database.SetInitializer<LandingContext>(new LandingInitializer()); 

和工作...