데이터베이스로 API 생성(EFCore 사용)
다른 연결 유형이 필요한 경우 사용할 수 있는 다양한 패키지가 있습니다. 예를 들어 MSSQL 인스턴스에서 데이터베이스를 호스팅하려는 경우 Microsoft.EntityFrameworkCore.SqlServer를 사용합니다.
프로젝트 내의 로컬 파일에 데이터베이스를 저장하려면 Microsoft.EntityFrameworkCore.Sqlite를 사용합니다.
그리고 메모리에만 존재하는 데이터베이스를 사용할 수 있으며 Microsoft.EntityFrameworkCore.InMemory를 사용하고 싶을 것입니다.
이 자습서에서는 다음을 사용합니다.
새 프로젝트 만들기
Visual Studio에서 새 솔루션을 만들고 새 프로젝트를 추가합니다.
기본 'ASP.NET Core Web API' 템플릿을 사용하고 있습니다. 이 튜토리얼에서 내 프로젝트 이름은 간단히 'EntityFrameworkCoreDemo'입니다.
다음으로 엔터티 프레임워크 코어용 nuget 패키지를 추가합니다.
패키지 추가
패키지를 추가하려면 새로 추가한 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Manage Nuget Package
-> Browse tab
-> 'Microsoft.EntityFrameworkCore.Sqlite'를 검색하고 Microsoft.EntityFrameworkCore.Sqlite
를 선택합니다. 우리는 '5.0.15' 버전을 사용하고 있습니다. 설치를 클릭하십시오.Microsoft.EntityFrameworkCore.Tools
에 대해서도 동일하게 수행
새 데이터베이스 모델 파일 생성
패키지를 추가하려면 새로 추가한 프로젝트를 마우스 오른쪽 버튼으로 클릭하고
Manage Nuget Package
-> Browse tab
-> 'Microsoft.EntityFrameworkCore.Sqlite'를 검색하고 Microsoft.EntityFrameworkCore.Sqlite
를 선택합니다. 우리는 '5.0.15' 버전을 사용하고 있습니다. 설치를 클릭하십시오.Microsoft.EntityFrameworkCore.Tools
에 대해서도 동일하게 수행새 데이터베이스 모델 파일 생성
DbContext
에서 상속됩니다.public class BloggingContext : DbContext
Post.cs라는 새 파일을 만듭니다.
public class Post
{
[Key]
public Guid Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
}
이제 BloggingContext 파일에 DbSet를 추가하여 DbContext에 이것이 데이터베이스의 일부임을 알려야 합니다.
public DbSet<Post> Posts { get; set; }
생성자를 만들고 코드를 추가합니다.
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
위의 코드에서 데이터베이스 위치를
C:\Users\username\AppData\Local\blogging.db
로 설정하고 있습니다. 로컬 개발 시스템에서는 잘 작동하지만 라이브 프로덕션 환경에서는 그렇지 않습니다.OnConfiguring
기능을 수정해야 합니다. 이 코드를 bloggingContext.cs에 추가합니다. protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
이제 DbContext가 끝났습니다!
파일은 다음과 같습니다.
public class BloggingContext : DbContext
{
public DbSet<Post> Posts { get; set; }
public string DbPath { get; }
public BloggingContext()
{
var folder = Environment.SpecialFolder.LocalApplicationData;
var path = Environment.GetFolderPath(folder);
DbPath = System.IO.Path.Join(path, "blogging.db");
}
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlite($"Data Source={DbPath}");
}
데이터베이스 생성
다음 명령을 실행하여 데이터베이스를 생성합니다.
오픈Tools -> Nuget Package Manager -> Package manager console
Add-Migration init
.
EntityFramework는 마이그레이션 파일을 사용하여 데이터베이스 상태를 추적합니다.
마이그레이션을 데이터베이스에 적용하려면 다음을 사용하십시오.update-database
시작 구성
startup.cs
파일을 열고 ConfigureServices
함수 내에 DbContext를 추가합니다. 새로 생성된 BloggingContext를 추가합니다.
services.AddDbContext<BloggingContext>();
컨트롤러 만들기
다음으로 게시물에 대한 모든 생성, 읽기, 업데이트 및 삭제 작업을 위한 컨트롤러를 생성합니다.
컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.
새 파일 추가API Controller with Actions, using Entity Framework
를 선택합니다.
Post.cs 모델과 BloggingDbContext를 선택하고 이름을 PostController.cs
로 둡니다.
추가를 클릭하고 스캐폴딩이 완료될 때까지 기다립니다.
모두 완료! 이제 애플리케이션을 실행하고 swagger를 사용하여 엔드포인트를 테스트할 수 있습니다.
마이크로소프트 가이드 덕분에:
https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=visual-studio
Reference
이 문제에 관하여(데이터베이스로 API 생성(EFCore 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/iamrule/creating-a-webapi-with-a-database-using-efcore-3n8p
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
startup.cs
파일을 열고 ConfigureServices
함수 내에 DbContext를 추가합니다. 새로 생성된 BloggingContext를 추가합니다. services.AddDbContext<BloggingContext>();
컨트롤러 만들기
다음으로 게시물에 대한 모든 생성, 읽기, 업데이트 및 삭제 작업을 위한 컨트롤러를 생성합니다.
컨트롤러 폴더를 마우스 오른쪽 버튼으로 클릭하십시오.
새 파일 추가API Controller with Actions, using Entity Framework
를 선택합니다.
Post.cs 모델과 BloggingDbContext를 선택하고 이름을 PostController.cs
로 둡니다.
추가를 클릭하고 스캐폴딩이 완료될 때까지 기다립니다.
모두 완료! 이제 애플리케이션을 실행하고 swagger를 사용하여 엔드포인트를 테스트할 수 있습니다.
마이크로소프트 가이드 덕분에:
https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=visual-studio
Reference
이 문제에 관하여(데이터베이스로 API 생성(EFCore 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/iamrule/creating-a-webapi-with-a-database-using-efcore-3n8p
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(데이터베이스로 API 생성(EFCore 사용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/iamrule/creating-a-webapi-with-a-database-using-efcore-3n8p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)