Я разрабатываю приложение WPF, которое использует Entity Framework v.6 с подходом Code First для создания и управления локальной базой данных, которая создается на самом клиентском компьютере.
Когда я устанавливаю приложение на клиентский компьютер и запускаю его, я получаю следующую ошибку, когда контекст пытается создать базу данных:
Расширение | DataDirectory | не удалось обработать строку подключения. Убедитесь, что | DataDirectory | указан правильный полный путь.
В app.config
Я установил следующую конфигурацию Entity Framework:
<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>
Мой контекстный класс содержит следующий код:
class EntityContext : DbContext
{
public DbSet<Car> Cars { get; set; }
public DbSet<Trip> Trips { get; set; }
public DbSet<Volunteer> Volunteers { get; set; }
public DbSet<Motivation> Motivations { get; set; }
public DbSet<PaymentType> PaymentTypes { get; set; }
public EntityContext() : base("StaccoDataBase")
{
System.Data.Entity.Database.SetInitializer(new CreateDatabaseIfNotExists<EntityContext>());
}
}
Я попытался исправить проблему, установив |DataDirectory|
в App.xaml.cs
следующим образом:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.SetData("DataDirectory", Directories.DBDirectory);
}
Но проблема все еще сохраняется.
Буду очень признателен, если кто-нибудь сможет мне помочь.