728x90 반응형 분류 전체보기295 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. Entity Framework Core] Loading pattern Eager loading : 일찍 데이터 로딩 Lazy loading : 데이터 필요 직전에, 자동으로 데이터 로딩 Explicit loading : 매뉴얼대로 데이터 로딩 Eager loading entities IQuryable? orders = _context.Orders? .Include(o => o.Items); if (orders is null) { WriteLine("주문건 없음"); } foreach (Order o in orders) { WriteLine($"{o.OrderId}의 품목개수 : {o.Items.Count}"); } foreach 돌면서, OrderId와 Items의 개수를 가져온다. 가능한 이유는, Include 함수를 호출하여 eager loading할 수 있기 때문이다.. 2023. 7. 14. C#] type, System.Type, System.Reflection type : string, int, float, double 등등... 변수와 상수가 갖는 type이다. 함수는 type 형식의 parameters를 전달받고 values를 반환할 수 있다. type에는 여러 카테고리가 있는데, built-in value types, built-in reference types가 대부분이다. System.Type : type에 상관없이 object, variables, constants에 reflect할 수 있는 함수를 제공한다. Reflection : OOP에서 우리는 class, struct 와 같은 model을 사용하여 object의 성격과 행동을 정의한다. 이러한 model을 설명하는 data를 metadata라고 한다. runtime에서 Reflection이라 .. 2023. 6. 19. Entity Framework Core] .AsNoTracking()이란? 기본적으로 EF Core는 모든 entity의 상태를 track한다. 이것은 메모리사용량을 높이고, 퍼포먼스를 떨어뜨린다. 특히, 다량의 데이터를 처리할때 말이다. 하지만 .AsNoTracking()을 사용하므로 EF Core의 tracking mechanism을 통과할 수 있다. 쿼리 실행속도가 빨라지고 메모리 overhead를 줄일 수 있다. .AsNoTracking()? EF Core에서 제공하는 함수로, database에서 data를 가져올 때 entities의 상태를 tracking하지 않는다. 기본적으로 EF Core를 사용하여 entity를 가져오면, context에 위해 상태값이 track된다. 따라서, EF Core는 entity 변경사항을 계속 track하고, SaveChanges()를.. 2023. 6. 9. ASP.NET Core] Entity Framework Core - Migrations 출처 : https://code-maze.com/migrations-and-seed-data-efcore/ Database Schemas 관리 EF Core는 EF Core model과 database schema 사이에 sync를 유지하기 위해, 2가지 방법을 제공한다. 둘 중 선택하려면, EF Core model과 database schema 중 기준이 되는 것을 정해야 한다. EF Core model이 기준이라면, Migrations을 사용해야 한다. EF Core model을 수정하면서 database에도 동일하게 적용해야 한다. database schema가 기준이라면, Reverse Engineering을 사용한다. Migration이란? EF Core를 사용하여 database를 생성하고 업.. 2023. 5. 24. 이전 1 ··· 12 13 14 15 16 17 18 ··· 50 다음 728x90 반응형