ASP.NET Core MVC 3.1에서 스캐 폴딩을 시도했을 때의 비망록
소개
ASP.NET Core MVC의 스캐 폴딩을 시도했을 때의 비망록입니다.
목표
연락처북 앱ContactBook
환경
연락처북 앱ContactBook
환경
준비
아래와 같이 ASP.NET Core나 EntityFramework등을 인스톨 해 둡니다.
필요한 경우 MySQL 8.0을 homebrew로 설치합니다.
ASP.NET Core 3.1 SDK 설치
아래에서 ASP.NET Core SDK를 다운로드하여 Mac에 설치합니다.
Download .NET Core 3.1
EntityFramwork, aspnet-codegenerator 설치
터미널dotnet tool install --global dotnet-ef
dotnet tool install --global dotnet-aspnet-codegenerator
절차
절차 자세한 내용은 Microsoft Docs에 개발 환경별로 나열되어 있습니다.
MVC 프로젝트 신규 작성
Visual Studio Code 터미널에서 MVC 프로젝트를 만듭니다.
터미널mkdir ContactBook
cd ContactBook
dontnet new mvc
NuGet으로 패키지 설치
EntityFramework 및 스캐폴딩에 필요한 패키지를 설치합니다.
터미널dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.SqlServer
dotnet add package Pomelo.EntityFrameworkCore.MySql
모델 만들기
연락처의 모델을 만듭니다.
ContactBook/Models/Contact.csnamespace ContactBook.Models
{
public class Contact
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
}
DB 컨텍스트 만들기
모델과 DB를 연결하는 DB 컨텍스트를 만듭니다.
ContactBook/Models/ContactBookContext.csusing Microsoft.EntityFrameworkCore;
namespace ContactBook.Models
{
public class ContactBookContext : DbContext
{
public ContactBookContext(DbContextOptions<ContactBookContext> options)
: base(options) { }
public DbSet<Contact> Contact { get; set; }
}
}
DB 컨텍스트 등록
Startup.cs에 DB 컨텍스트를 등록합니다.
MySQL 연결 문자열을 AppSettings로 설정했습니다.
ContactBook/Startup.csusing ContactBook.Models;
using Microsoft.EntityFrameworkCore;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
using Pomelo.EntityFrameworkCore.MySql.Storage;
ContactBook/Startup.cspublic void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<ContactContext>(options =>
options.UseMySql(Configuration.GetConnectionString("ContactBook"), mySqlOptions => mySqlOptions
.ServerVersion(new ServerVersion(new Version(8, 0, 19), ServerType.MySql))));
}
ContactBook/appsettings.json{
"ConnectionStrings": {
"ContactBook": "Server=localhost;Database=ContactBook;User=root;Password=****************"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
마이그레이션
데이터베이스를 만듭니다.
터미널dotnet ef migrations add InitialCreate;
dotnet ef database update
스캐폴딩
asp-condegenerator에서 컨트롤러를 만듭니다.
그런 다음 기본 뷰도 만듭니다.
터미널dotnet aspnet-codegenerator controller -name ContactsController -m Contact -dc ContactBookContext -ourDir Controllers -udl -script
디버그 실행
디버깅을 실행하면 브라우저가 시작되므로 아래 URL에 액세스합니다.
https://localhost:5001/Contacts
참고
dotnet tool install --global dotnet-ef
dotnet tool install --global dotnet-aspnet-codegenerator
절차 자세한 내용은 Microsoft Docs에 개발 환경별로 나열되어 있습니다.
MVC 프로젝트 신규 작성
Visual Studio Code 터미널에서 MVC 프로젝트를 만듭니다.
터미널
mkdir ContactBook
cd ContactBook
dontnet new mvc
NuGet으로 패키지 설치
EntityFramework 및 스캐폴딩에 필요한 패키지를 설치합니다.
터미널
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet add package Microsoft.SqlServer
dotnet add package Pomelo.EntityFrameworkCore.MySql
모델 만들기
연락처의 모델을 만듭니다.
ContactBook/Models/Contact.cs
namespace ContactBook.Models
{
public class Contact
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Address { get; set; }
}
}
DB 컨텍스트 만들기
모델과 DB를 연결하는 DB 컨텍스트를 만듭니다.
ContactBook/Models/ContactBookContext.cs
using Microsoft.EntityFrameworkCore;
namespace ContactBook.Models
{
public class ContactBookContext : DbContext
{
public ContactBookContext(DbContextOptions<ContactBookContext> options)
: base(options) { }
public DbSet<Contact> Contact { get; set; }
}
}
DB 컨텍스트 등록
Startup.cs에 DB 컨텍스트를 등록합니다.
MySQL 연결 문자열을 AppSettings로 설정했습니다.
ContactBook/Startup.cs
using ContactBook.Models;
using Microsoft.EntityFrameworkCore;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
using Pomelo.EntityFrameworkCore.MySql.Storage;
ContactBook/Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<ContactContext>(options =>
options.UseMySql(Configuration.GetConnectionString("ContactBook"), mySqlOptions => mySqlOptions
.ServerVersion(new ServerVersion(new Version(8, 0, 19), ServerType.MySql))));
}
ContactBook/appsettings.json
{
"ConnectionStrings": {
"ContactBook": "Server=localhost;Database=ContactBook;User=root;Password=****************"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
마이그레이션
데이터베이스를 만듭니다.
터미널
dotnet ef migrations add InitialCreate;
dotnet ef database update
스캐폴딩
asp-condegenerator에서 컨트롤러를 만듭니다.
그런 다음 기본 뷰도 만듭니다.
터미널
dotnet aspnet-codegenerator controller -name ContactsController -m Contact -dc ContactBookContext -ourDir Controllers -udl -script
디버그 실행
디버깅을 실행하면 브라우저가 시작되므로 아래 URL에 액세스합니다.
https://localhost:5001/Contacts
참고
Reference
이 문제에 관하여(ASP.NET Core MVC 3.1에서 스캐 폴딩을 시도했을 때의 비망록), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mkumeta/items/dd59ea541ca76a8de074텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)