본문 바로가기
728x90
반응형

Entity Framework Core26

.NET CLI] .NET 7, Entity Framework Core 오프라인 설치 회사 PC는 인터넷도 안되고, Visual Studio 2022도 없다... 회사 PC에서 EF Core 사용할 수 있도록 세팅해보자. 1. VS Code 설치 설치파일 회사PC로 옮겨서 설치하자 2. .NET SDK 설치 https://dotnet.microsoft.com/en-us/download/dotnet/7.0 가장 최신인 7.0.306 SDK 설치파일 회사PC로 옮겨서 설치하자 터미널을 열어 설치된 .NET SDK정보를 확인해보자 C:\Users\TEST>dotnet --info .NET SDK: Version: 7.0.306 Commit: 런타임 환경: OS Name: Windows OS Version: OS Platform: Windows RID: win10-x64 Base Path: C:.. 2023. 7. 21.
Entity Framework Core] Custom Migrations Operations MigrationBuilder API를 사용하여, custom operations을 정의할 수 있다. API를 확장하기 위한 2가지 방법이 있다. Sql() 함수를 사용하거나, custom MigrationOperation objects를 정의할 수 있다. migrations에서 다음의 code를 사용해서 database user를 생성하는 operation을 각각의 방법으로 구현해보자. migrationBuilder.CreateUser("SQLUser1", "Password"); Using MigrationBuilder.Sql() custom operation 구현의 가장 쉬운 방법은 MigrationBuilder.Sql()를 호출하는 extension method를 정의하는 것이다. public st.. 2023. 7. 20.
Entity Framework Core] 팀 개발 환경에서 Migrations 팀 개발환경에서 Migrations을 사용할 때, model snapshot file에 더 주의를 기울어야 한다. 이 파일은 동료가 migration merge를 깔끔하게 할지, conflict를 해결하기 위해 migration을 다시 만들어야 할지 말해준다. Merging 동료의 것으로 부터 migrations을 merge할때, model snapshot file에 충돌이 날 수 있다. 양쪽 변경이 무관하면, 사소한 문제로 two migrations이 공존할 수 있다. 예를들어, customer entity type 구성에서 다음과 같은 merge conflict가 발생할 수 있다. > Theirs 두 properties 모두 최종 model에 포함되기 때문에, 다 추가하는 것으로 merge를 종결시킬.. 2023. 7. 20.
Entity Framework Core] Migrations 반영 migrations이 추가되고 나면, database에 적용해야 한다. production 환경 또는 development lifecycle에 더 적합하게 처리하기 위한, 여러가지 전략이 있다. 배포 전략이 무엇이던 간에, 운영 db에 적용하기 전 항상 생성된 migrations을 검수하고 테스트해야 한다. migration을 drop column을 할 수 있으며, 배포 시 여러이유로 실패할 수 있다. SQL scripts 운영DB에 migrations을 적용하기 위한 방법으로 추천되는 것은 SQL scripts이다. 이 전략은 다음의 장점을 가진다. SQL scripts는 정확성을 위해 검토할 수 있다. schema 변경을 운영DB에 적용하는 것은, 데이터 손실을 가져올 수 있는 위험한 작업이기 때문에.. 2023. 7. 20.
Entity Framework Core] Migrations 관리 Customize migration code EF Core가 일반적으로 정확한 migrations을 생성하지만, 원하는 변경과 일치하는지 항상 code를 살펴보아야 한다. 몇몇 상황에서는 꼭 필요하다. Column renames 한 가지 예로, property 이름변경 시, customizing migrations이 필요하다. property명을 Name에서 FullName으로 변경 시, EF Core는 다음의 migration을 생성한다. migrationBuilder.DropColumn( name: "Name", table: "Customers"); migrationBuilder.AddColumn( name: "FullName", table: "Customers", nullable: true); EF.. 2023. 7. 20.
Entity Framework Core] transactions SaveChanges 함수를 호출할 때마다, transaction이 실행된다. transaction은 아래와 같은 특성이 있다. atomic : transaction 안에 모든 operations이 모두 commit 되거나, 되지 않는다. consistent : transaction 전후, database 상태는 일관된다. 예를들어 계좌이체를 할 때, 한 계좌에서 100달러를 인출했으면 한 계좌에 100달러를 입금되어 있어야 한다. isolated : transaction 동안, 수정은 다른 프로세스로부터 숨겨져있어야 한다. 여러 isolation level이 있다. 강력한 level일 수록, 데이터 무결성에 좋다. 하지만, lock이 많을수록, 다른 프로세스에 부정적인 영향을 준다. durable : .. 2023. 7. 14.
728x90
반응형