ASP.NET Core 튜토리얼에서 조금 빠진 이야기

9472 단어 ASP.NET_Coretutorial
안녕하세요. 엑셀 소프트의 타부치입니다.

발단



ASP.NET Core에서 Razor 페이지 웹 앱 만들기 | Microsoft Docs

이 자습서를 ASP.NET Core 2.0에서 사용하고 모델 추가까지 왔습니다.

2018/6/19 현재이 엔트리를 작성하는 동안 ASP.NET Core 2.1이 GA
2.1로 다시 시작합니다 ...

ASP.NET Core에서 Razor 페이지 앱에 모델 추가 | Microsoft Docs

EntityFramworkCore 2.0을 사용하여 작업 중이며 "데이터베이스 연결 문자열 추가"부분에서



라고 하는 기술이 있었으므로, appsettings.json 에 다음과 같이 기재했습니다. (흠흠, Logging의 아래라는 이해)
{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "ConnectionStrings": {
      "MovieContext": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;Trusted_Connection=True;MultipleActiveResultSets=true"
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  }
}

이것이 큰 실패. 그대로 다음 단계로 진행하여 "데이터베이스 컨텍스트 등록"을 수행하고 다음 단계 "스캐 폴딩 도구 추가 및 초기 마이그레이션 수행"에서
Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.0.3
Add-Migration Initial
Update-Database

을 패키지 관리자에서 넣으려고 그래서 패키지를 설치하고 Add-Migration Initial 그렇게하면 다음과 같은 오류가 있습니다. .
System.ArgumentNullException: Value cannot be null.
Parameter name: connectionString
   at Microsoft.EntityFrameworkCore.Utilities.Check.NotEmpty(String value, String parameterName)
   at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 sqlServerOptionsAction)
   at ITStudySearch.WebApi.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) in D:\_dev\BitBucket\itstudysearch\ITStudySearch\ITStudySearch.WebApi\Startup.cs:line 32
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory[TContext](IServiceProvider applicationServiceProvider, Action`2 optionsAction)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.FindContextTypes()
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.FindContextType(String name)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Value cannot be null.
Parameter name: connectionString

누누누누? ? ? ? 그래서,

이 순서에 있는 Package Manager에서의 「Add-Migration Initial」로 인수는 Null로 할 수 없다고 에러가 나온다. 하지만 해결 방법을 모른다. (처음 할 때는 이런 느낌이군요. > htps // t. 코 / DVMz fVC Core에서 Razor 페이지 앱에 모델 추가 | Microsoft Docs: htps // t. 코 / 오 XWg7 PrysH — 타부치 요시토 @ 엑셀 소프트


중얼거리면 2018년 6월 18일 씨가 도와주었습니다.




ConnectionString 가져올 수 없다면 appsettings.json에서 연결 문자열을 쓰는 곳 (섹션)이 잘못되었습니까?

자주 묻는 것은 Logging 섹션에 쓰여졌거나 ...




Logging 섹션 중… 그렇다면…?



그렇습니다.



정답은 다음과 같다. 부끄럽지만 이미지의 외형에 속아 버렸습니다.



{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  },
  "ConnectionStrings": {
    "MovieContext": "Server=(localdb)\\mssqllocaldb;Database=Movie-1;Trusted_Connection=True;MultipleActiveResultSets=true"
  }
}


교훈



JSON을 건드릴 때는 Visual Studio나 IDE에서 쌍을 이루고 있다.



입니다.



이상입니다.


좋은 웹페이지 즐겨찾기