Entity Framework 7 데이터베이스 첫 번째 구성 (MVC 6)

asp.net-core asp.net-core-mvc entity-framework-core

문제

오랜 지속적인 투쟁 끝에 마침내 MVC 6을 사용하는 EF7 Database의 첫 번째 접근 방법을 알아 냈습니다.

App.Impl -> project.json :

"frameworks": {
    "net451": { },
    "dnx451": { }
},
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},

그런 다음 cmd에서 명령을 실행하십시오.

"frameworks": {
    "net451": { },
    "dnx451": { }
},
"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer.Design": "7.0.0-rc1-final"
},

내가 직면하고있는 3 가지 문제. 내 Impl 프로젝트에서.

  1. 데이터 전용 폴더가 있습니다. 내 데이터 폴더에는 DbContext, DbClasses와 같은 모든 데이터베이스 관련 항목이 포함되어야합니다. 그러나 Scaffold는 이러한 파일을 루트에 작성합니다. 이 파일을 만들 폴더를 어떻게 지정합니까?

  2. 직장에서 50 개의 테이블이있는 데이터베이스를 가질 수있었습니다. 그러나 2에 대한 액세스 만 필요한 경우에는 어떻게해야합니까? 내 프로젝트에 50 개의 테이블을 모두 추가하고 싶지 않습니다. 원하는 테이블을 어떻게 지정할 수 있습니까?

  3. 내 데이터베이스에서 사용자가 포함 된 테이블이기 때문에 "Users"라는 테이블을 가질 수있었습니다. 그러나, Scaffold는 List가 될 때까지 단일 사용자이므로 클래스를 "User"로 작성해야합니다. 생성되는 테이블의 이름을 어떻게 지정할 수 있습니까?

도와 주셔서 감사합니다.

수락 된 답변

사용하려고 시도하십시오.

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    --dataAnnotations
    --outputDir Data
    --verbose
    --table dbo.Users

위의 모든 매개 변수는 같은 줄에 있어야하지만 더 쉽게 읽을 수 있도록 긴 줄을 감 쌉니다. 소스 코드 를 보면 RC1에서 scaffold 명령을 지원하는 옵션을 볼 수 있습니다.

ConnectionStringappsettings.json 에서 복사하여 붙여 넣으십시오. Server=Server\\InstanceName; ConnectionString 에서는 dnx ef dbcontext scaffold 는 현재 Server=Server\InstanceName; 만 허용 Server=Server\InstanceName; System.InvalidOperationException 오류가 발생 합니다. Server=Server\\InstanceName; appsettings.jsonConnectionString 에서 직접 복사됩니다.

중요한 추가 매개 변수는 -p | --targetProject 클래스 라이브러리에서 저장소를 사용하는 경우 중요합니다. 이 경우 주 프로젝트에서 ef 명령을 정의하고 기본 프로젝트의 디렉토리에서 dnx ef dbcontext scaffold 를 시작하지만 클래스 라이브러리 프로젝트를 참조하려면 -p 를 사용합니다.

마지막 발언. 때로는 데이터베이스에서 테이블의 하위 집합 을 비계해야합니다. 커맨드 라인 도움말에서 명확한 것은 아니지만, -t ( -table ) 매개 변수를 여러 번 지정할 수 있습니다 . EF7 wiki 의 메모 를 참조하십시오. 따라서 두 개의 테이블 dbo.Usersdbo.Posts ( PostsUsers 대한 외래 키가 있는지 여부)를 가져 오려면 다음 구문을 사용할 수 있습니다

dnx ef dbcontext scaffold 
    "Server=Server\InstanceName;Database=db;Trusted_Connection=True;"
    EntityFramework.MicrosoftSqlServer 
    --dataAnnotations
    --outputDir Data
    --verbose
    --table dbo.Users

업데이트 : 하나는 사용해야 dotnet ef dbcontext scaffold 대신 dnx ef dbcontext scaffold 나중에 ASP.NET 코어 RC2와에.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.