0

Я пытаюсь настроить проект с помощью «луковой» структуры, где я использую несколько слоев для разных частей проект (DAL, BL, WEB). Сначала у меня были все мои файлы в одном проекте, включая зависимости от EF, где все работало как шарм.Команда обновления базы данных EF 7 dnx, приводящая к форматированию строки инициализации, не соответствует спецификации, начинающейся с индекса 0

Затем я начал разделять различные части приложения и создавать небольшие проекты для каждой «области».

Моя структура папок выглядит следующим образом:

enter image description here

я решил вырваться рамки сущности из верхнего слоя (Wwwroot) и установки его зависимостей в мою DAL проекта. EF работает нормально, и я могу, когда я запустить команду

dnx ef migrations add somemigrationname 

добавляет папки миграции в проект DAL и заполнит его с моими желаемыми миграции. Howerver, когда я пытаюсь обновить свою базу данных с помощью

dnx ef database update 

он выдает следующее сообщение об ошибке:

Format of the initialization string does not conform to specification starting at index 0. 

Из всех ответов, по поводу этой ошибки, я нашел здесь переполнение стека большинство указывало на недопустимая строка подключения.

Странная часть заключается в том, что моя строка соединения работала, когда я использовал ef и обновлял мою базу данных в верхнем слое (мой проект wwwwroot). Но после того, как я начал использовать разные слои, он переставал работать.

Мой DAL слой использует собственный Startup Файловые ДИТ выглядит следующим образом:

public class Startup 
{ 
    public IConfigurationRoot Configuration { get; set; } 

    public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) 
    { 
     var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json").AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 
     builder.AddEnvironmentVariables(); 
     Configuration = builder.Build(); 
    } 


    public void Configure(IApplicationBuilder app) 
    { 

     // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 
    } 

    public void ConfigureServices(IServiceCollection services) 
    { 
     // Add framework services. 
     services.AddEntityFramework() 
      .AddSqlServer() 
      .AddDbContext<CustomContext>(options => 
       options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])); 

     services.AddIdentity<Entities.ApplicationUser, IdentityRole>() 
      .AddEntityFrameworkStores<CustomContext>() 
      .AddDefaultTokenProviders(); 
    } 

EDIT: Мой файл appsettings.json внутри моего DAL проекта выглядит следующим образом:

{ 
    "Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Data Source=.\\SQLEXPRESS;Initial Catalog=customdb;User ID=Carl; Password=test; Integrated Security=false;" 
    } 
    }, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Verbose", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 

Стоит упомянуть одно: все мои проекты нацелены только на dnxcore50 {}, а не на dnx451.

+0

ли вы просто проверить строку соединения? –

+0

Строка подключения идентична той, которую я использовал, прежде чем я переместил EF в свой собственный проект. –

+0

«. \\ Sqlexpress» кажется мне странным, поскольку вы префикс своей строки @, я думаю, что это должно быть ».\ Sqlexpress " –

ответ

0

Вы ошибка на вашей строке соединения:

var connection = @"Data Source=.\\SQLEXPRESS;Initial Catalog=customdb;User ID=username; Password=mypassword; Integrated Security=false;"; 

Оно должно быть:

var connection = @"Data Source=.\SQLEXPRESS;Initial Catalog=customdb;User ID=username; Password=mypassword; Integrated Security=false;"; 

или

var connection = "Data Source=.\\SQLEXPRESS;Initial Catalog=customdb;User ID=username; Password=mypassword; Integrated Security=false;"; 

, если вы не хотите использовать, чтобы использовать дословная строка.

Больше на струнах и vermatim строк в C#, гласил: string (C# Reference)

Смежные вопросы

 Смежные вопросы