Приложение WPF с EF6 не создает новую базу данных в SQL Server Enterprise - PullRequest
0 голосов
/ 07 февраля 2020

Я работаю над приложением WPF и сначала использую код Entity Framework 6 для базы данных, но когда я запускаю приложение, база данных не создается на SQL Server Enterprise. Я много гуглил, но не смог найти подходящего решения для этого, заранее всем благодарен.

Ниже приведен мой файл App.config:

<?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="DbConnectionString" connectionString="Data Source=.;Initial 
         Catalog=CricketAcademy;Integrated Security=True;" providerName="System.Data.SqlClient" />
   </connectionStrings>


   <startup> 
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
   </startup>
   <entityFramework>
       <providers>
           <provider invariantName="System.Data.SqlClient" 
           type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
       </providers>
   </entityFramework>
  </configuration>  

Это мой контекстный класс:

class Db : DbContext
{
    public Db() : base("name=DbConnectionString")
    {

    }
    public DbSet<Player> Players { get; set; }
    public DbSet<Player_Phone> PlayerPhones { get; set; }
    public DbSet<Admission> Admissions { get; set; }
    public DbSet<Fee> Fees { get; set; }
    public DbSet<Coach> Coaches { get; set; }
    public DbSet<Shift> Shifts { get; set; }

}  

А вот мой класс MainWindow:

public partial class MainWindow : Window
{
    private Db DB = new Db();
    public MainWindow()
    {
        InitializeComponent();
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {

    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {

    }
}

1 Ответ

0 голосов
/ 08 февраля 2020

Добавьте в конструктор вашего DbContext:

public Db() : base("name=DbConnectionString")
{
      Database.SetInitializer<Db>(new CreateDatabaseIfNotExists<Db>());
}

Вы можете найти больше информации в этой статье .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...