'da başlayan belirtime uymuyor Ben farklı bölümler için birden çok katman kullandığım "Soğan gibi" yapıya sahip bir proje kurmaya çalışıyorum proje (DAL, BL, WEB). İlk önce tüm dosyalarımın, her şeyin bir cazibe gibi çalıştığı EF'e olan bağımlılıkları da içeren tek bir projede vardı.EF 7 dnx veritabanı güncelleştirme komutu ile sonuçlanan başlatma dizesi biçimi 0
Daha sonra uygulamanın farklı bölümlerini bölmeye ve her "alan" için daha küçük projeler oluşturmaya başladım.
Benim klasör yapısı aşağıdaki gibidir: Üst katmanda (wwwroot) ve bu benim DAL projeye bağımlılıkları var yüklenmesini varlık çerçevesini patlak verdi
. EF iyi çalışır ve ben komutunu
dnx ef migrations add somemigrationname
o DAL projeye Göç klasörleri ekler ve benim istenen göçler doldurur Koşabiliyorken. ben aşağıdaki hatayı atar
dnx ef database update
kullanarak veritabanını güncellemek çalıştığınızda Howerver: tüm cevaplar Of
Format of the initialization string does not conform to specification starting at index 0.
, Bu hatayla ilgili olarak, i çoğunluğu işaret yığın taşması burada buldum geçersiz bağlantılar.
Tuhaf kısmı, iletişim kuralımın ef'yi kullandığımda ve veritabanımı en üst katmanda güncellediğimde (wwwwroot projem) çalıştığıdır. Ama farklı katmanları kullanmaya başladığımda çalışmayı bıraktı.
Benim DAL katman kendi Başlangıç bir dit şöyle dosyası kullanır:
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();
}
DÜZENLEME:
{
"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"
}
}
}
: benim DAL proje içinde benim appsettings.json dosyası şuna benzer Bahsetmeye değer bir şey, tüm projelerimin sadece dnxcore50 {}, dnx451 değil, yalnızca hedeflenmesidir.
Eğer sadece bağlantı dizesini test ettin? –
Bağlantı dizesi, EF'i kendi projesine taşımadan önce kullandığımla aynıdır (çalışmakta olan). –
". \\ Sqlexpress", "@ ile dizginizi ön ekledikçe bana garip geliyor" diye düşünüyorum. "\ SQLExpress " –