Я пытаюсь настроить проект с помощью «луковой» структуры, где я использую несколько слоев для разных частей проект (DAL, BL, WEB). Сначала у меня были все мои файлы в одном проекте, включая зависимости от EF, где все работало как шарм.Команда обновления базы данных EF 7 dnx, приводящая к форматированию строки инициализации, не соответствует спецификации, начинающейся с индекса 0
Затем я начал разделять различные части приложения и создавать небольшие проекты для каждой «области».
Моя структура папок выглядит следующим образом:
я решил вырваться рамки сущности из верхнего слоя (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.
ли вы просто проверить строку соединения? –
Строка подключения идентична той, которую я использовал, прежде чем я переместил EF в свой собственный проект. –
«. \\ Sqlexpress» кажется мне странным, поскольку вы префикс своей строки @, я думаю, что это должно быть ».\ Sqlexpress " –