asp.net core로 스캐 폴드를 시도 할 때이 명령
scaffold-dbcontext “데이터 소스 = (로컬); 초기 카탈로그 = MyDb; 통합 보안 = True;” Microsoft.EntityFrameworkCore.sqlserver -outputdir 모델
이 오류를 제공합니다.
scaffold-dbcontext : ‘scaffold-dbcontext’라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함 된 경우 경로가 올바른지 확인하고 다시 시도하십시오. 줄 : 1 char : 1 + scaffold-dbcontext “Data Source = (local); Initial Catalog = MyDB; In … + ~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound : (scaffold-dbcontext : String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
여기 에서 해결책을 시도했지만 저에게 효과가 없습니다.
원인 / 치료법이 무엇인지 아십니까?
답변
나에게는 패키지 관리자 콘솔에서도 실행 한 후에 분명히 작동했습니다.
Install-Package Microsoft.EntityFrameworkCore.Tools
또한 다음을 확인하십시오.
-
다른 종속성 (예 : Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.SqlServer.Design …)이 필요에 따라 참조되도록합니다.
-
PM 콘솔의 오른쪽 상단 모서리에서 명령의 대상으로 올바른 어셈블리를 선택하려면
내가 만난 또 다른 문제 : 별도의 클래스 라이브러리에있는 dbcontext에서 다음 오류가 발생했습니다.
이름이 Microsoft.EntityFrameworkCore.SqlServer 인 공급자 어셈블리를 찾을 수 없습니다. 지정된 이름이 올 바르고 프로젝트에서 참조되는지 확인하십시오.
VS에서 내 클래스 라이브러리를 시작 프로젝트 로 설정하여 수정할 수있었습니다 (무의미 해 보이지만 작동하는 이유는 묻지 마십시오).
늦은 편집, 알아야 할 다른 사항이 있습니다. .Net Standard만을 대상으로하는 클래스 라이브러리에 대해 Scaffold-DbContext를 실행할 수 없으며, netcoreapp도 활성화해야합니다. 그렇지 않으면 Scaffold-DbContext가 불평합니다. 모두 목표를 지원하기 위해, 편집 csproj은 넣어 : <TargetFrameworks>netcoreapp2.2;netstandard2.0</TargetFrameworks>
대신의 <TargetFramework>
섹션을 참조하십시오.
이 모든 작업이 끝나면 Scaffold-DbContext
적절한 인수와 연결 문자열을 사용 하여 명령 줄 을 실행할 수 있습니다 .
답변
답변
VS를 관리자로 실행 하고 다음 패키지를 설치 했는지 확인하십시오 .
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.SqlServer.Design
- Microsoft.EntityFrameworkCore.Tools
답변
답변
.NetCore 2.2를 사용하는 경우 아래 명령은 명령 프롬프트 또는 Git Bash에서 나에게 매력처럼 작동합니다. 명령을 실행하기 전에 프로젝트 폴더에 직접 있는지 확인하십시오.
예를 들어 C : \ App \ ProjectName :
dotnet ef dbcontext scaffold "Server=.\;Database=Databasename;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Model
답변
NuGet 패키지 관리자에서 Microsoft.EntityFrameworkCore.Tools를 설치했으며 설치된 패키지에 표시되었습니다. 하지만이 오류가 계속 발생했습니다.
Visual Studio (2019 / 버전 16.4.4)를 다시 시작하면 문제가 해결되었습니다.
답변
Scaffold
command는 dbcontext
EF에서 명령의 일부입니다 . 다음은 성공을위한 세부 정보입니다 scaffold
.
필요한 패키지 참조 :
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0"/>
따라서 우리의 scaffold 명령은 다음과 같아야합니다.
dotnet ef dbcontext scaffold "Server=localhost\SQLEXPRESS;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o OutputDirectory
귀하의 Server
값은 DB 서버 이름에 따라 다를 수 있습니다. 폴더 와 같은 새로 만든 스캐 폴딩 클래스를 원하는 위치 와 MyDatabase
같은 데이터베이스 이름으로 바꿉니다 .master
OutputDirectory
Models