엔티티 프레임워크

Entity Framework
엔티티 프레임워크
원본 작성자마이크로소프트
개발자.NET 파운데이션
초기 릴리즈2008년 8월 11일; 13년(2008-08-11)
안정적 해제
엔티티 프레임워크 6: v6.4.4
엔티티 프레임워크 코어: v5.0.0 / 엔티티 프레임워크 6: 2020년 4월 22일; 22개월(2020-04-22)[1]
엔티티 프레임워크 코어: 2020년 10월 24일; 16개월(2020-10-24)[2]
리포지토리github.com/dotnet/ef6
github.com/dotnet/efcore
기록 위치C#
플랫폼.NET Framework,
.NET 코어
유형객체-관계 매핑
면허증아파치 라이선스 2.0
웹사이트msdn.microsoft.com/en-us/data/ef.aspx

엔티티 프레임워크(EF)는 ADO를 위한 오픈 소스 ORM(Open Source[3] Object-Relational Mapping) 프레임워크다.NET. 원래 의 필수 부품으로 선적되었다.NET Framework.엔티티 프레임워크 버전 6부터 에 별도로 제공되었다.NET Framework.[citation needed]

개요

엔티티 프레임워크는 ADO의 기술 집합이다.데이터 지향 소프트웨어 애플리케이션 개발을 지원하는 NET.데이터 지향 애플리케이션의 설계자와 개발자는 일반적으로 매우 다른 두 가지 목표를 달성해야 하는 필요성에 어려움을 겪어왔다.이들은 자신이 해결하고 있는 비즈니스 문제의 실체, 관계, 논리를 모델링해야 하며, 데이터를 저장하고 검색하는 데 사용되는 데이터 엔진과도 협력해야 한다.데이터는 각각 고유한 프로토콜을 사용하여 여러 스토리지 시스템에 걸쳐 있을 수 있다. 단일 스토리지 시스템에서 작동하는 애플리케이션도 스토리지 시스템의 요구 사항과 효율적이고 유지 관리가 가능한 애플리케이션 코드를 작성해야 하는 요구 사항의 균형을 맞춰야 한다.이 문제를 일반적으로 "객체-관계 임피던스 불일치"[citation needed]라고 한다.

개발자가 이 데이터가 저장되는 기본 데이터베이스 테이블 및 열과 관계 없이 고객 및 고객 주소와 같은 도메인별 객체 및 속성의 형태로 데이터와 작업할 수 있도록 하기 위해 많은 ORM(개체-관계 매핑) 도구들이 개발되었다.ORM을 통해 개발자는 데이터를 다룰 때 더 높은 수준의 추상화 작업으로 작업할 수 있으며, 기존 애플리케이션보다 적은 코드로 데이터 지향 애플리케이션을 만들고 유지할 수 있다.엔티티 프레임워크는 현재 마이크로소프트 개발 스택 내에서 사용하기 위해 추진 중인 ORM 솔루션이다.[4]

역사

에서는 첫 번째 버전의 엔티티 프레임워크(EFv1)가 포함되었다.NET Framework 3.5 서비스 팩 1과 Visual Studio 2008 서비스 팩 1은 2008년 8월 11일 (13년)(2008-08-11)에 출시되었다.이 버전은 널리 비판되었고, 심지어 최소 1,000명의 개발자들이 서명한 '무신뢰 투표'까지 끌어모았다.[5]

Entity Framework 4.0(EFv4)이라는 이름의 두 번째 버전의 Entity Framework가 의 일부로 출시되었다.2010년 4월 12일, NET 4.0은 버전 1에 대한 많은 비판을 다루었다.[6]

세 번째 버전의 엔티티 프레임워크 버전 4.1은 2011년 4월 12일에 코드 퍼스트 지원으로 출시되었다.

엔티티 프레임워크 4.1 업데이트 1로 명명된 4.1 버전의 업데이트는 2011년 7월 25일에 출시되었다.버그 수정 및 지원되는 새로운 유형을 포함한다.

버전 4.3.1은 2012년 2월 29일에 출시되었다.[7]마이그레이션 지원 같은 몇 가지 업데이트가 있었다.

버전 5.0.0은 2012년[8] 8월 11일에 출시되었으며 을 대상으로 한다.NET Framework 4.5.또한 이 버전은 에 사용할 수 있다.Net Framework 4를 사용하지만 버전 4에 비해 런타임 이점이 없음.

버전 6.0은 2013년[9] 10월 17일에 출시되었으며 현재 Apache License v2에 따라 라이센스가 부여된 오픈 소스 프로젝트다.ASP처럼.NET MVC의 소스 코드는 Git를 사용하여 GitHub에서 호스팅된다.[10]이 버전은 코드 우선 지원을 위해 여러 가지 개선 사항이 있다.[11]

그 후 마이크로소프트는 현대화, 컴포넌트화, 그리고 가져오기로 결정했다.리눅스, OSX 및 그 밖의 여러 곳에 대한 NET 교차 플랫폼은 엔티티 프레임워크의 다음 버전이 완전한 재작성이 될 것임을 의미한다.[12]2016년 6월 27일 이것은 ASP와 함께 엔티티 프레임워크 코어 1.0으로 출시되었다.NET Core 1.0 및 .NET Core 1.0.[13]원래는 엔티티 프레임워크 7로 명명되었지만, 증분 업그레이드가 아닌 완전한 재작성이며 EF6를 대체하지 않는다는 점을 강조하기 위해 이름을 바꾸었다.[14]

엔티티 Framework Core 1.0은 Apache License v2에 따라 라이센스가 부여되며 GitHub에서 완전히 개방적으로 구축되고 있다.엔티티 프레임워크 코어 1.0은 이전 버전의 엔티티 프레임워크와 일부 개념적 유사성을 공유하지만, 보다 효율적이고 강력하며 유연하고 확장 가능하도록 설계된 완전히 새로운 코드베이스로, 윈도우즈, 리눅스 및 OSX에서 실행되며, 새로운 범위의 관계형 및 NOSQL 데이터 저장소를 지원할 것이다.[12]

엔터티 프레임워크 코어 2.0은 비주얼 스튜디오 2017년 15.3, ASP와 함께 2017년 8월 14일 (4년)(2017-08-14)에 출시되었다.NET Core 2.0 [15]

엔터티 프레임워크 코어 3.0은 비주얼 스튜디오 2019 16.3, ASP와 함께 2019년 9월 23일(2년)(2019-09-23)에 출시됐다.NET Core 3.0, [16]

엔티티 프레임워크 코어 3.1(EF 코어 3.1)은 2019년 12월 3일(2년 ) 생산용으로 정식 출시되었으며, 적어도 2022년 12월 3일까지 장기 지원 우선 버전이 될 것이다.[17][18]

엔티티 프레임워크 코어 5.0.2 (EF 코어 5)는 2021년 1월 12일 (13개월 전) (2021-01-12)에 생산용으로 출시되었다.[19][20]

가장 최근 출시된 엔티티 프레임워크 코어 6.0(EF 코어 6)은 2021년 11월 10일 (4개월)(2021-11-10)에 출시되었다.[21][22]

건축

ADO.NET 엔티티 프레임워크 스택.

ADO의 아키텍처.NET Entity Framework는 아래부터 아래까지 다음과 같이 구성된다.[citation needed]

  • ADO를 추상화하는 데이터 원본 특정 공급자.개념 스키마에 대해 프로그래밍할 때 데이터베이스에 연결하는 NET 인터페이스.
  • 엔티티 SQL 명령 트리를 데이터베이스의 네이티브 SQL 풍미의 쿼리로 변환하는 데이터베이스별 공급자 Map 공급자.일반 명령 트리를 스토어별 명령 트리로 변환하는 것을 담당하는 구성요소인 스토어별 브리지를 포함한다.
  • EDM 파서 및 뷰 매핑은 데이터 모델의 SDL 사양을 기본 관계 모델에 매핑하는 방법과 개념 모델에 대한 프로그래밍을 가능하게 한다.관계 스키마에서 개념 모델에 해당하는 데이터의 뷰를 생성한다.이 기준서는 여러 표의 정보를 통합하여 하나의 기업으로 통합하고, 기업에 대한 업데이트를 그 기업에 기여하는 표에 대한 여러 업데이트로 분할한다.
  • 파이프라인 쿼리 업데이트, 쿼리, 필터 및 업데이트 요청을 표준 명령 트리로 변환하여 지도 공급자에 의해 스토어별 쿼리로 변환.
  • 엔티티, 관계 및 매핑과 관련된 모든 메타데이터를 처리하는 메타데이터 서비스.
  • 기본 스토어의 트랜잭션 기능과 통합되는 트랜잭션.기반 스토어가 트랜잭션을 지원하지 않는 경우, 이 계층에서 해당 스토어에 대한 지원을 구현할 필요가 있다.
  • 개념 계층 API, 개념 스키마에 대해 코딩을 위한 프로그래밍 모델을 노출하는 런타임.그것은 ADO를 따른다.연결 개체를 사용하여 맵 제공자를 참조하고, 명령 개체를 사용하여 쿼리를 전송하며, 엔티티 ResultSets 또는 엔티티를 반환하는 NET 패턴결과를 포함하는 세트.
  • 연결이 끊어진 구성 요소 - 데이터셋 및 엔티티가 ADO 사용을 위해 로컬로 캐싱함간헐적으로 연결된 환경의 NET 엔티티 프레임워크.
  • 내장형 데이터베이스: ADO.NET Entity Framework에는 클라이언트 측 캐싱 및 관계형 데이터 쿼리용 경량 내장 데이터베이스가 포함되어 있다.
  • Mapping Designer와 같은 설계 도구도 ADO에 포함된다.NET Entity Framework는 개념 스키마를 관계형 스키마에 매핑하고 엔티티 유형의 속성이 데이터베이스의 어떤 테이블에 해당하는지 지정하는 작업을 단순화한다.
  • 프로그래밍 계층, 프로그래밍 언어에 의해 소비될 수 있는 프로그래밍 구성물로 EDM을 노출한다.
    • 개체 서비스, 엔티티와 동일한 속성을 노출하는 CLR 클래스에 대한 코드를 자동으로 생성하여 엔티티를 로 인스턴스화할 수 있음.NET Objects.
    • 엔티티를 웹 서비스로 노출하는 웹 서비스.
  • 관계형 데이터보다는 실체에 작용하는 보고 서비스와 같은 높은 수준의 서비스.

엔티티 데이터 모델

기업 데이터 모델(EDM)은 기업-관계 모델의 확장 버전인 기업 데이터 모델이라고 불리는 모델링 기법을 사용하여 데이터의 개념 모델(CSDL)을 지정한다.[23]데이터 모형은 주로 기업이 참여하는 기업협회를 설명한다.EDM 스키마는 XML(확장 마크업 언어)을 응용한 SDL(Schema Definition Language)로 표현된다.또한, 개념 스키마(CSDL)의 요소를 스토리지 스키마(SSDL)에 매핑(MSL)하는 것도 지정해야 한다.매핑 명세서도 XML로 표현된다.[24]

Visual Studio는 또한 EDM과 매핑 사양의 시각적 생성을 위한 엔티티 디자이너를 제공한다.도구의 출력은 스키마와 매핑을 지정하는 XML 파일(*.edmx)이다.EDMx 파일에는 EF 메타데이터 아티팩트(CSDL/MSL/SSDL 콘텐츠)가 포함되어 있다.이 세 가지 파일(csdl, msl, ssl)도 손으로 만들거나 편집할 수 있다.[citation needed]

매핑

Visual Studio의 엔티티 데이터 모델 마법사는 처음에 데이터베이스[25] 스키마와 개념 스키마 사이의 일대일 매핑을 생성한다.관계형 스키마에서 요소는 표로 구성되며, 기본 키와 외부 키가 관련 표를 함께 붙인다.이와는 대조적으로, 기업유형은 데이터의 개념 스키마를 정의한다.[citation needed]

엔티티 유형은 여러 개의 입력된 필드(각 필드가 데이터베이스의 특정 열에 매핑됨)의 집합이며, 여러 물리적 테이블의 정보를 포함할 수 있다.엔티티 유형은 물리적 스키마의 관계와는 독립적으로 서로 관련될 수 있다.관련 실체도 마찬가지로 노출된다. 즉, 데이터베이스의 일부 열에서 값을 검색하는 대신 관련 실체(또는 실체 집합)[citation needed]를 반환하는, 자신이 참여하고 있는 관계를 나타내는 필드를 통해 접근한다.

엔터티 유형은 엔터티가 준수하는 객체 클래스를 형성하며, 엔터티는 엔터티 유형의 인스턴스(instance)엔티티는 응용프로그램에 의해 해결되는 문제의 일부를 형성하고 키에 의해 색인되는 개별 객체를 나타낸다.예를 들어 위에서 설명한 물리적 스키마를 변환하면 다음과 같은 두 가지 엔티티 유형을 갖게 된다.

  • CustomerEntity(고객)는 고객 테이블의 고객 이름과 연락처 테이블의 고객 주소를 포함하고 있다.
  • 특정 고객의 주문을 캡슐화하여 주문 테이블에서 검색하는 OrderEntity.

논리 스키마와 물리적 스키마와의 매핑은 XML 파일로 지정된 EDM(Entity Data Model)으로 표현된다.ADO.NET 엔티티 프레임워크는 내부적으로 ADO의 사용을 추상화하면서 응용프로그램이 엔티티와 함께 작동하도록 하는 매핑을 실제로 수행하기 위해 EDM을 사용한다.NET는 DataSetRecordSet. ADO와 같은 구성 요소.NET Entity Framework는 여러 테이블의 엔티티 참조 정보를 제공하거나 관계를 통과할 때 필요한 조인을 수행한다.엔티티가 업데이트되면 정보가 어떤 테이블에서 왔는지 추적하고 SQL 업데이트문을 발행하여 일부 데이터가 업데이트된 테이블을 업데이트한다.ADO.NET Entity Framework는 SQL의 파생 모델인 eSQL을 사용하여 엔터티와 그 관계에 대한 쿼리, 이론적 작업 및 업데이트를 수행한다.필요한 경우 eSQL의 쿼리는 기본 데이터베이스의 기본 SQL 향으로 변환된다.[citation needed]

엔티티 유형과 엔티티 집합은 논리 EDM 스키마를 형성할 뿐이며, 그 무엇으로도 노출될 수 있다.ADO.NET 엔티티 프레임워크는 이러한 엔티티를 속성으로 노출되는 요소와 관계를 가진 개체로 표시하는 개체 서비스를 포함한다.따라서 엔티티 개체는 EDM 엔티티 유형의 인스턴스 앞에 있을 뿐이며, 이를 통해 Object Oriented 언어가 이를 액세스하고 사용할 수 있다.마찬가지로, 다른 프런트 엔드가 생성될 수 있으며, 웹 서비스(예: WCF Data Services) 또는 XML을 통해 엔티티를 노출하여 엔티티를 지속성 스토리지 또는 오버더 와이어 전송을 위해 직렬화할 때 사용된다.[26]

엔티티

엔티티**는 엔티티의 인스턴스임유형(: 고객, 주문)은 정보가 포함된 개체의 개별 인스턴스를 나타낸다.기업의 정체성은 기업 유형에 의해 정의된다. 그러한 의미에서 기업 유형은 기업이 속한 클래스를 정의하고 기업이 보유할 부동산도 정의한다.속성은 기업의 이름과 유형을 지정하여 기업의 일부 측면을 설명한다.ADO에서 엔티티 유형의 속성.NET Entity Framework는 완전히 타이핑되며 의 공통 유형 시스템뿐만 아니라 DBMS 시스템에서 사용되는 유형 시스템과 완전히 호환된다.NET Framework속성은 SimpleType 또는 ComplexType이 될 수 있으며 다중값도 가능하다.모든 엔티티유형은 일부 네임스페이스에 속하며 엔티티 유형의 각 인스턴스를 고유하게 식별하는 엔티티키 속성을 갖는다.서로 다른 속성 유형은 다음과 같이 구분된다.[citation needed]

  • SimpleType정수, 문자부동 소수점 번호와 같은 원시 데이터 유형에 해당한다.[27]
  • ComplexTypeSimpleType 또는 ComplexType의 여러 속성을 집계한 것이다.엔티티와 달리그러나 형식은 엔티티키를 가질 수 없다.엔티티 프레임워크에서 v1 ComplexTypes를 상속할 수 없음.[28]

모든 엔티티 인스턴스는 엔티티컨테이너에 수용되며, 엔티티컨테이너는 엔티티컨테이너에 포함되어 있다.각 프로젝트에는 여러 네임스페이스와 엔티티 유형에 걸쳐 엔티티를 참조할 수 있는 하나 이상의 이름이 지정된 엔티티컨테이너가 있다.하나의 엔티티 유형의 여러 인스턴스를 엔티티 세트라는 컬렉션에 저장할 수 있다.하나의 엔티티 유형은 여러 엔티티 집합을 가질 수 있다.[citation needed]

EDM 원시 유형(단순 유형):[27][29]

EDM형 CLR 유형 매핑
에드엠 바이너리 바이트[]
Edm.Boolean 부울
EDM.Byte 바이트
Edm.DateTime 날짜 시간
Edm.DateTimeOffset DateTimeOffset
에드름 디히말 십진법
에드엠더블 더블
에드m.가이드 GUID
에드름 인트16 Int16
에드름인트32 int32
에드름인트64 인트64
에드엠에스비테 SByte
에드엠싱글 싱글
에드먼 스트링
에드엠 타임 시간 범위

관계들

어떤 두 가지 유형의 기업도 협회 관계 또는 격납건물 관계에 의해 관련될 수 있다.예를 들어, 주문에 주문 세부 정보가 포함된 주문은 봉쇄 관계인 반면, 발송물은 고객에게 청구된다.제약관계는 또한 기업들 간의 상속을 모형화하는 데 사용될 수 있다.두 엔터티 유형 사이의 관계관계 유형으로 지정되며, 관계 유형이라고 하는 인스턴스들은 엔터티 인스턴스들과 관련이 있다.향후 발매에서는, 컴퍼지션, 즉 식별과 같은 다른 종류의 관계 유형이 도입될 수 있다.[citation needed]

관계형태는 정도(성격) 또는 이들이 관련된 개체 유형의 수 및 그 다중성으로 특징지어진다.그러나, ADO의 초기 출시에서는.NET Entity Framework, 관계는 이항 (2급) 양방향 관계로 제한된다.다중성은 얼마나 많은 엔티티 인스턴스들이 함께 연관될 수 있는지를 정의한다.다중성에 근거하여, 관계는 일대일, 일대다 또는 다대다일 수 있다.엔티티 간의 관계를 명명하고, 이 이름을 역할이라고 한다.그것은 관계의 목적을 규정한다.[citation needed]

관계 유형에는 또한 관련된 운영이나 조치가 있을 수 있으며, 이것은 관련 기업에 대해 수행되는 조치가 있는 경우에 기업에 대해 일부 조치가 수행될 수 있도록 허용한다.관련 기업에 대해 일부 연산이 수행될 때 조치를 취하도록 관계를 지정할 수 있다.예를 들어 관계(OnDelete 작업)의 일부를 구성하는 엔터티를 삭제할 때 수행할 수 있는 작업은 다음과 같다.[30]

  • 관계 인스턴스 및 모든 관련 엔터티 인스턴스를 삭제하도록 지시하는 캐스케이드.
  • 없다.

양쪽 끝에서 서로 다른 의미론을 가질 수 있는 연결 관계의 경우, 양쪽 끝에 대해 서로 다른 동작을 지정할 수 있다.[citation needed]

스키마 정의 언어

ADO.NET 엔티티 프레임워크는 XML 기반 SDL(Schema Definition Language)을 사용하여 EDM Schema를 정의한다.SDL은 String, Int32, Double, Decimum, Guid, DateTimeCTS 원시 유형과 유사한 SimpleTypes를 정의한다.원시적 가치와 이름의 지도를 정의하는 Enumeration도 단순한 유형으로 간주된다.열거는 프레임워크 버전 5.0 이후 버전에서만 지원된다.ComplexTypes는 다른 유형의 집합에서 생성된다.이러한 유형의 속성 모음이 엔터티 유형을 정의한다.이 정의는 다음과 같이 EBNF 문법으로 작성할 수 있다.[citation needed]

  엔티티유형::=      엔티티유형 도면요소유형 이름[기준 도면요소유형 이름]       [추상 참 거짓의] KEY propertiesName[, 속성 이름]*       {(속성이름 속성유형[PropertyFacet]*) +}    속성유형::= (         (원시형[FrestiginTypeFacets]*)           (complexTypeName)           RowType            PropertyFacet::= (         [NULLABLE true  거짓의]           [DEFAULT defaultVal]            [다중성[1 *]]       )            속성타입팩시트::=          최대 길이  정밀도  척도           유니코드  고정 길이  데이터 정렬           DATETIMEKIND  방부세컨즈            원시형::=          이진수    부울           싱글  더블  십진법  GUID           바이트  SBYTE  INT16  INT32  INT64           DATTIME  DATETIME OFFSET  시간   ) 

facets는 자산의 메타데이터(예: nullable 또는 default value)를 재산의 카디널리티(cardinality)로 기술하는 데 사용된다."1"의 다중성은 단일의 가치 있는 속성을 의미하며, "*"는 다중 가치 속성임을 의미한다.예를 들면, 기업은 SDL에서 다음과 같이 나타낼 수 있다.[31]

<콤플렉스타입 이름="애드르">     <속성 이름="거리" 유형="끈" Nullable="거짓말" />     <속성 이름="도시" 유형="끈" Nullable="거짓말" />     <속성 이름="나라" 유형="끈" Nullable="거짓말" />     <속성 이름="우편 번호" 유형="Int32" /> </ComplexType> <엔티티형 이름="고객">     <키>         < PropertyRef> 이름="이메일" />     </키>     <속성 이름="이름" 유형="끈" />     <속성 이름="이메일" 유형="끈" Nullable="거짓말" />     <속성 이름="주소" 유형="애드르" /> </엔티티활자> 

관계 유형은 끝점과 그 승수를 지정하는 것으로 정의된다.예를 들어 고객과 주문 의 일대다 관계를 다음과 같이 정의할 수 있다.

< 협회 이름="CustomerAndOrders">     <끝> 유형="고객" 다중성="1" />     <끝> 유형="주문" 다중성="*">         <온삭제 작용="캐스케이드" />     </끝> </협회> 

데이터 쿼리 중

엔티티 SQL

ADO.NET 엔티티 프레임워크는 개념적 수준에서 엔티티 및 엔티티 관계에 대한 선언적 질의와 업데이트를 작성하는 것을 목적으로 하는 엔티티 SQL이라는 구조화된 질의 언어의 변형을 사용한다.EDM은 테이블 간 파티션 데이터를 추상화하도록 설계돼 있어 조인용 명시적 구문이 없다는 점에서 SQL과 다르다.[citation needed]

개념 모델에 대한 질의는 엔티티클클라이언트 클래스에 의해 촉진되며, 엔티티 SQL 질의를 허용한다.쿼리 파이프라인은 엔티티 SQL 쿼리를 명령 트리로 구문 분석하여 엔티티 클라이언트 제공자에게 전달되는 여러 테이블에서 쿼리를 분리한다.아도처럼.NET 데이터 제공자인 엔티티클라이언트 제공자도 Connection 개체를 사용하여 초기화되는데, 여기에는 데이터 저장소 및 인증 정보의 일반적인 매개 변수 외에도 SDL 스키마와 매핑 정보가 필요하다.그런 다음 EntityClient 제공자는 Entity SQL 명령 트리를 데이터베이스의 기본 풍향에 있는 SQL 쿼리로 변경한다.그러면 쿼리의 실행은 ADO와 달리 표 구조로 제한되지 않는 엔티티 SQL ResultSet를 반환한다.NET ResultSets.[citation needed]

엔티티 SQL은 다음을 위한 내적 지원을 추가하여 SQL을 강화한다.[citation needed]

  • 유형(ADO로).NET 엔티티가 완전히 입력되었다.
  • 엔티티 집합. 엔티티 집합으로 처리됨.
  • 서브쿼리를 사용할 수 있는 위치에 대한 제한을 제거하는 컴포지션성.

엔티티 SQL 표준 함수

표준 함수는 모든 엔티티 프레임워크 호환 데이터 제공자가 지원한다.엔티티 SQL 쿼리에 사용할 수 있다.또한, LINQ to Entitles에 있는 대부분의 확장 방법은 표준 함수로 변환된다.그들은 특정 데이터베이스로부터 독립적이다.ADO 때.NET 데이터 공급자는 함수를 수신하여 원하는 SQL 문으로 변환한다.[32]

그러나 모든 DBMS가 동등한 기능과 일련의 표준 내장 기능을 가지고 있는 것은 아니다.계산의 정확성에도 차이가 있다.따라서 모든 표준 함수가 모든 데이터베이스에 대해 지원되는 것은 아니며, 모든 표준 함수가 동일한 결과를 반환하는 것은 아니다.[citation needed]

그룹 표준 함수[32]
집계함수 평균, BigCount, Count, Max, Min, StDev, StDevP, Sum, Var, VarP
함수 복근, 천장, 바닥, 전원, 원형, 절단
문자열 함수 Concat, 포함, EndsWith, IndexOf, 왼쪽, 길이, LTrim, Replace, Reverse, 오른쪽, RTrim, Subring, StartsWith, ToLower, ToUpper, 트림
날짜 및 시간 함수 AddMicroseconds, AddMilliseconds, AddSeconds, AddMinutes, AddHours, AddNanoseconds, AddDays, AddYears, CreateDateTime, AddMonths, CreateDateTimeOffset, CreateTime, CurrentDateTime, CurrentDateTimeOffset, CurrentUtcDateTime, Day, DayOfYear, DiffNanoseconds, DiffMilliseconds, DiffMicroseconds, DiffSeconds, DiffMinutes, DiffHours, DiffDays, DiffMonths, DiffYears, GetTotalOffset분, 시간, 밀리초, 분, 월, 초, 잘라내기시간, 연도
비트 함수 BitWiseAnd, BitWiseNot, BitWiseOr, BitWiseXor
기타 함수 뉴가이드

LINQ와 도면요소 연결

LINQ to Entities 제공자는 LINQ다양한 RDBMS 데이터 소스를 쿼리하는 데 사용할 수 있도록 허용한다.엔티티 프레임워크를 지원하는 여러 데이터베이스 서버 특정 제공자를 사용할 수 있다.[citation needed]

네이티브 SQL

엔티티 프레임워크 v4에서 새로운 방법인 ExecuteStoreQuery()ExecuteStoreCommand()가 ObjectContext 클래스에 추가되었다.[citation needed]

시각화기

Visual Studio는 Visualizer라는 기능을 가지고 있다.Visual Studio에서 작성된 LINQ 쿼리는 디버그 세션 중에 Visualizer를 사용하여 Native SQL로 볼 수 있다.모든 RDBMS를 대상으로 하는 LINQ to Entitles (Object Query) Visualizer는 "VisualStudioGallery"[33]에서 이용할 수 있다.

엔티티 프레임워크 프로파일러

엔티티 프레임워크 프로파일러는 ASP의 성능 문제를 해결할 ORM(Object-Relational Mapping Tool)이다.엔티티 프레임워크를 사용한 NET 애플리케이션.SELECT N + 1 이슈와 같은 일반적인 데이터베이스 쿼리 비효율성을 검사한다.[34]

참고 항목

참조

  1. ^ "Releases · dotnet/ef6 · GitHub".
  2. ^ "Releases · dotnet/efcore · GitHub".
  3. ^ Krill, Paul (20 July 2012). "Microsoft open-sources Entity Framework". InfoWorld. Retrieved 2012-07-24.
  4. ^ "Entity Framework Overview - ADO.NET".
  5. ^ ADO .NET 엔티티 무신뢰 프레임워크 투표
  6. ^ "Update on the Entity Framework in .NET 4 and Visual Studio 2010". ADO.NET team blog. May 11, 2009. Archived from the original on January 20, 2010. Retrieved November 1, 2011.
  7. ^ "EF4.3.1 and EF5 Beta 1 Available on NuGet". ADO.NET team blog. February 29, 2012. Archived from the original on March 25, 2012. Retrieved March 27, 2012.
  8. ^ "EF5 Available on CodePlex". August 11, 2012.
  9. ^ "EF6 RTM Available". October 17, 2013. Archived from the original on 2014-03-30.
  10. ^ "Entity Framework - Home". September 14, 2016.
  11. ^ "EF Version History".
  12. ^ a b "EF7 - New Platforms, New Data Stores". May 19, 2014. Archived from the original on 2015-09-29.
  13. ^ "Entity Framework Core 1.0.0 Available". 27 June 2016.
  14. ^ Hanselman, Scott. "ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 - Scott Hanselman". www.hanselman.com. Retrieved 2016-07-11.
  15. ^ "Announcing .NET Core 2.0". .NET Blog. 14 August 2017.
  16. ^ "Announcing .NET Core 3.0". .NET Blog. 23 September 2019.
  17. ^ "EF Core releases and planning".
  18. ^ "Microsoft.EntityFrameworkCore 5.0.11".
  19. ^ "EF Core releases and planning".
  20. ^ "Microsoft.EntityFrameworkCore 5.0.11".
  21. ^ "EF Core releases and planning".
  22. ^ "Microsoft.EntityFrameworkCore 6.0".
  23. ^ "Entity Data Model". MSDN, Microsoft. August 2, 2012. Retrieved August 15, 2013.
  24. ^ CSDL, SSDL, and MSL Specifications, MSDN, archived from the original on 2010-11-08, retrieved 2010-12-06
  25. ^ Entity Data Model Wizard, MSDN, retrieved 2010-12-06
  26. ^ Kogent Solutions Inc. (2009), ASP.NET 3.5 Black Book, Dreamtech Press, ISBN 978-81-7722-831-1
  27. ^ a b Simple Types (EDM), MSDN, retrieved 2010-12-06
  28. ^ ComplexType Element (CSDL), MSDN, retrieved 2010-12-06
  29. ^ Conceptual Model Types, MSDN, retrieved 2010-12-06
  30. ^ OnDelete Element (CSDL), MSDN, retrieved 2010-12-06
  31. ^ Facets (CSDL), MSDN, retrieved 2010-12-06
  32. ^ a b Canonical Functions (Entity SQL), MSDN, retrieved 2010-03-29
  33. ^ 비주얼스튜디오갤러리
  34. ^ "Entity Framework Profiler". hibernatingrhinos.com. Hibernating Rhinos. Retrieved 2021-05-12.

참고 문헌 목록

외부 링크