먼저 둘다 Entity Framework Core에서 데이터 모델을 구성하는데에 사용하는 방법이다. 우선순위를 먼저 보자면 Fluent Api가 Data Annotation보다 우선순위가 높다. 둘 모두를 사용했을 경우에 Fluent api의 설정이 적용되나, 둘 다
네비게이션 프로퍼티는 Entity Framework 에서 엔티티 간의 관계를 나타내는 프로퍼티이다. 이를 통해서 연관된 엔티티들 간에 탐색할 수 있으며, 코드 내에서 마치 객체 간의 관계를 다루듯 데이터베이스 테이블 간의 관계를 다룰 수 있다.역할 엔티티간 탐색( 제일
일단 이벤트의 작동은 다음과 같다. 이벤트와 이벤트 핸들러는 닷넷에서 객체 또는 컴포넌트가 특정 상황에서 알림을 받기 위해서 사용하는 메커니즘이다. 이벤트 핸들러는 이러한 이벤트가 발생했을 때 호출되는 메서드를 참조한다. 이벤트 핸들러 대리자는 이벤트 핸들러 메서드의
첫번째 주제는 구조체와 클래스이다. 일반적으로는 구조체는 함수가 없고 변수만 들어갈 수 있다고 알 고 있지만, 구조체 안에도 함수가 들어갈 수 있다. 그렇다하면 클래스와 구조체가 어떤 점에서 차이가 있을까. 먼저 겉으로 보았을 때 별로 차이가 없다. 클래스와 마찬가지로
CreatedAtAction CreatedAtAction메서드는 asp.net core에서 컨트롤러 내부의 액션 메서드에 의해서 생성된 새 리소스에 대한 HTTP 201 Created 응답을 생성할 때 사용한다. 이 메서드는 생성된 리소스의 URI를 Location 헤
Entity Framework CoreIQueryable과 IEnumerableLINQ나 람다를 쓰다보면 이 두 인터페이스를 많이 마주치게 되는데, 잘 알아두어야 할 것 같다. 먼저IEnumerable은 순회가능이다. 그리고 IQueryable은 쿼리가능하다는 건데,
문제풀이 p.635 총점 (41 / 50) 여러분의 답변은 대부분 정확하거나 근접했지만, 일부 답변에서는 더 명확하거나 상세한 설명이 필요했습니다. Entity Framework Core를 사용하는 데 있어 기본적인 개념을 잘 이해하고 있으며, 약간의 추가 학습을 통해
IEnumerable 열거관련 인터페이스 IEnumerable은 열거관련한 인터페이스이다. 열거가 가능하다는 것은 순회가 가능하다는 것을 뜻한다. 일단 배열은 기본적으로 이 인터페이스를 구현한다. 컬렉션들도 일반적으로 이 인터페이스를 구현한다. (배열 / 리스트 / 해
DbContext 수명DbContext의 수명은 인스턴스가 만들어질 때 시작되고 인스턴스가 삭제될 때 종료된다. DbContext 인스턴스는 단일 작업 단위에 사용되도록 설계되었다. 따라서 DbContext 인스턴스의 수명은 매우 짧다. EF core에서의 작업단위패턴
추적 및 비추적 쿼리EF core에서 쿼리를 실행할 때, EF core는 결과로 반환되는 엔티티에 대해서 내부적으로 추적(트래킹)을 할지 말지 결정할 수 있다. 이것은 쿼리의 성능 최적화 및 애플리케이션의 요구 사항에 따라 데이터를 관리하는 방법을 선택할 수 있게 해준
DI를 사용하면 클래스 간의 결합도를 낮추고, 유연성 및 테스트 용이성을 높일 수 있다. DbContext를 asp.net core 의 di 시스템에 등록하고 사용하는 것은 EF Core를 사용하는 어플리케이션에서 매우 일반적인 패턴이다.DbContext의 DI 등록방
EF core는 동일한 DbContext 인스턴스에서 실행되는 여러 병렬 작업을 지원하지 않는다. 비동기 쿼리의 병렬 실행과 여러 스레드에서의 명시적 동시 사용도 안된다. 따라서 항상 await 비동기 호출을 즉시 수행하거나 병렬로 실행되는 작업에 대해서 별도의 DbC
DbContext 풀링은 마치 수영장의 장난감처럼 DbContext라는 중요한 도구를 여러번 만들고 버리는 대신에 사용하지 않을 때는 다시 수영장에 넣어두고 필요할 때 다시 꺼내쓰는 방법이다. 이렇게 하면 매번 새 장난감을 사지 않아도 되므로 시간과 자원을 아낄 수 있
EF core는 메타데이터 모델을 사용하여 어플리케이션의 엔티티 형식이 기본 데이터 베이스에 매핑되는 방법을 설명한다. 이 모델은 일반적인 패턴을 찾는 추론이라는 규칙 집합을 사용하여 빌드되고그 다음에OnModelCreating에서 Data annotaion ( 매핑특
불필요한 코드를 줄이고 가독성을 높이기 위함입니다.A. 일반적으로 함수를 작성하고 그것을 사용하려고 할때 따로 호출해야합니다.B. 람다를 쓰게되었을 때 불필요한 코드를 줄인다는 함수의 작성과 어떠한 동작을 한번에 할 수 있기 때문입니다. 이로 인해서 얻는 이점은 코드를
멀티스레딩시작은 다음과 같다. 총선 프로그램을 보면 처음에 사용자가 타이머 주기를 선택하고 그 주기대로 DB를 업데이트하거나, XML을 최신화하거나 하는데, 그때마다 해당 타이머의 Tick() 메서드가 실행된다. 예를 들어서 Tick메서드에서 주기적으로 ExFunc()
비동기에 대해서 깊게 공부한다고 하더라도, 당장 코드에 녹아나지 않을 수도 있다. 그렇지만, 코드의 흐름을 정확하게 이해하기 위해서는 비동기에 대해서 명확하게 알아야하고 더 나아가서, 스레드 / 병렬 프로그래밍 / 닷넷 런타임에 대해서 알아야 완전하게 제어되는 코드의
Environment.SpecialFolder 열거형using static System.Environment;SpecialFolder.Personal – 내 문서SpecialFolder.Desktop – 바탕화면 SpecialFolder.ProgramFiles – Pr
modelBuilder.Entity() .HasOne(p => p.Child) .WithOne(c => c.Parent) .HasForeignKey(c => c.ParentId);Parent엔티티를 설정할 것이다. Parent 엔티티는 Child 엔티티
마소 문서를 보고 정리하려다가.. 안그래도 헷깔리는 개념인데 번역체까지 더해지니까 이해가 잘 안가서 한번 여기저기서 글 모아서 정리해보려고 한다.내 생각을 정리했기 때문에 틀릴수도(?) 있다.싱글 스레딩 환경에서는 사실 대리자라는 개념이 별로 중요하지 않을 수 있다.
를 이렇게 바꿀 수 있다. 이렇게 바꾸면 조금 더 직관적으로 바뀐다.
속성과 인덱스는 C- 클래스나 구조체의 멤버로 정의될 수 있다.데이터를 안전하게 읽거나 쓸 수 있도록 한다.개체의 상태를 관리하는 방법을 제공하며, 필드 ( 클래스 또는 구조체의 변수 )에 대한 접근을 제어한다.속성은 클래스, 구조체, 인터페이스 내에서 사용되며, 필드
레코드는 C- 불변성을 기본으로 하는 개체를 쉽게 만들 수 있게 해준다. 주로 데이터전송개체(DTO)나 값 개체(value Object)와 같이 데이터를 담는 용도로 사용된다.클래스와 구조체의 특성을 결합한 것으로 보여질 수 있다. 불변성과 값 기반의 동등성 비교를 제
internal protected 와 private protected는 Cpublic, protected, internal, private, private protected, internal protectedinternal protectedinternal protect
C필드 이니셜라이저를 사용하면 필드를 선언과 동시에 초기화할 수 있다. 이 방법은 생성자를 통한 초기화보다 간결하고, 필드 선언 시에 기본 값을 지정하는데에 유용하다.생성자를 사용하는 경우생성자를 사용하지 않고 필드이니셜라이저를 사용하는 경우근데 위와 같은 경우보다는
@"" (영어로는 verbatim string literal이라고 한다고 한다)문자열 내의 escape 시퀀스를 무시하고 문자열을 있는 그대로 처리한다. 파일경로, 정규표현식과 같은 escape 문자가 빈번하게 포함되는 문자열을 표현할 때 유용하다. 일반적인 문자열에서
해시테이블의 구조Index는 해시테이블의 각 칸을 나타내며, 키를 해시 함수에 넣었을 때 나온 해시값에 따라서 결정된다.Chaining : index1에 보면 하나의 인덱스의 여러 개의 키-값 쌍이 저장되고 있는데 이들은 연결리스트로 관리된다. k1-v1은 첫번째 키-
속성이나 메서드의 Body 블럭이 간단한 경우에, Statement Block을 사용하는 대신 간단한 함수식 (expression)을 사용할 수 있다. 이를 표현식멤버라고 한다.람다식과 유사하다. 이를 통해서 변경불가능 속성 (Immutable Property)를 간단
비동기 스트림은 C- 시간이 오래 걸릴 수 잇있는 소스에서 데이터가 계속 도착하는 경우에 유용하다. 이 상황에서 데이터를 기다리는 동안에 다른 작업을 계속 수행할 수 있다.어플리케이션의 응답성, 리소스 사용이 보다 효율적으로 관리된다.1IAsyncEnumerable&l
서버사이드 컨트롤ASP.NET은 버튼, 라벨, 텍스트 박스 등 다양한 서버사이드 컨트롤을 제공한다. 이 컨트롤들은 서버에서 실행되고, 사용자의 입력을 처리하거나 페이지의 데이터를 동적으로 변경할 수 있다.상태관리웹은 기본적으로 상태가 없는 환경이지만, ASP.NET W
기존의 JSON지원 클래스의 default 는 NewtonSoft.json이었으나 System.Text.Json으로 변경되었다. 제공하는 기능은 다음과 같다.C2. json 문자열을 C3. JsonDocument와 JsonElement 클래스를 통해서 json문자열을