ado.net entity framework 소개

16
http://blog.naver.com/woom333 ADO.NET Entity Framework ADO.NET Entity Framework 소소 소소 소소소 Microsoft Visual C# MVP http://blog.naver.com/woom333

Upload: ifama

Post on 17-Jan-2016

101 views

Category:

Documents


1 download

DESCRIPTION

ADO.NET Entity Framework 소개. 2008.11.15. 한용희 Microsoft Visual C# MVP http://blog.naver.com/woom333. 차례. Programmer VS. Data Base Administrator Object VS. Data LINQ LINQ Project LINQ to SQL LINQ to Entities LINQ to DataSet 유연한 매핑 M:N 매핑 Entity Splitting Table per Hierarchy - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

ADO.NET Entity Framework ADO.NET Entity Framework 소개소개

한용희Microsoft Visual C# MVPhttp://blog.naver.com/woom333

Page 2: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

차례차례Programmer VS. Data Base AdministratorProgrammer VS. Data Base Administrator

Object VS. DataObject VS. Data

LINQLINQLINQ ProjectLINQ Project

LINQ to SQLLINQ to SQL

LINQ to EntitiesLINQ to Entities

LINQ to DataSetLINQ to DataSet

유연한 매핑유연한 매핑M:N M:N 매핑매핑Entity SplittingEntity Splitting

Table per HierarchyTable per Hierarchy

Table per TypeTable per Type

DEMODEMO

Page 3: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Programmer VS. Data Base AdministratorProgrammer VS. Data Base Administrator

Page 4: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Object VS. DataObject VS. Data

Table

ObjectObjectObjectObject

Table TableObjectObjectObjectObject ObjectObjectObjectObject

StorageModel

ConceptualModel

Mapping

Page 5: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

LINQLINQ(Language Integrated Queries)(Language Integrated Queries)

Page 6: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

LINQ ProjectLINQ Project

C# 3.0C# 3.0 Visual Basic Visual Basic 9.09.0 OthersOthers

.NET Language Integrated Query.NET Language Integrated Query

LINQ toLINQ toObjectsObjectsLINQ toLINQ toObjectsObjects

LINQ toLINQ toDataSetsDataSetsLINQ toLINQ to

DataSetsDataSetsLINQ toLINQ to

SQLSQLLINQ toLINQ to

SQLSQLLINQ toLINQ toEntitiesEntitiesLINQ toLINQ toEntitiesEntities

LINQ toLINQ toXMLXML

LINQ toLINQ toXMLXML

ObjectsObjects

<book> <title/> <author/> <year/> <price/></book>

XMXMLL

RelationRelationalal

Page 7: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

LINQ to SQLLINQ to SQL

신속한 개발을 해야 할 때신속한 개발을 해야 할 때Microsoft SQL ServerMicrosoft SQL Server 만 지원만 지원직접 매핑직접 매핑 (Direct Mapping)(Direct Mapping)

한 클래스는 한 클래스는 SQL SQL 스키마 한 객체에 직접 대응스키마 한 객체에 직접 대응테이블 테이블 , , 뷰뷰저장 프로시저저장 프로시저 , , 테이블 값 함수테이블 값 함수 (Table Valued Function)(Table Valued Function)

테이블테이블 , , 컬럼에 대한 이름 변경컬럼에 대한 이름 변경외래키를 통하여 관계를 설정외래키를 통하여 관계를 설정상속상속

TPH (Table per Hierarchy) TPH (Table per Hierarchy) 지원지원

Page 8: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

LINQ to EntitiesLINQ to Entities

엔터프라이즈급에서 사용엔터프라이즈급에서 사용다양한 다양한 DB(Oracle, DB2, Microsoft SQL DB(Oracle, DB2, Microsoft SQL Server) Server) 사용 가능사용 가능유연한 매핑유연한 매핑 (Flexible Mapping)(Flexible Mapping)

하나의 클래스를 다수의 테이블하나의 클래스를 다수의 테이블 // 뷰와 매핑뷰와 매핑상속상속

TPH (Table per Hierarchy)TPH (Table per Hierarchy)

TPT (TableTPT (Table per Type)per Type)

Complex Type (Complex Type ( 예예 : : 주소주소 [[ 시시 ,, 구구 ,, 동동 ,, 번지번지 ]] 타입타입 ))

M:NM:N 관계 표현관계 표현

Page 9: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

LINQ to DataSetLINQ to DataSet

비비 연결 기반 연결 기반 (Disconnected Cache)(Disconnected Cache)

형식화된 데이터 집합형식화된 데이터 집합 (Typed DataSet)(Typed DataSet)필드명으로필드명으로 참조참조

형식화 되지 않은 데이터 집합형식화 되지 않은 데이터 집합 (Untyped DataSet)(Untyped DataSet)강력한 타입으로 참조강력한 타입으로 참조

var query = from row in myDataSet.Tables["Customers"].AsEnumerable() where row .Field<string>("City") == "London" select new { row.Field <string> ("CustomerID"),

row.Field <string> ("ContactName") } ;

var query = from customer in northwind.Customers where customer.City == "London" select customer;

Page 10: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

유연한 매핑 유연한 매핑 (Flexible Mapping)(Flexible Mapping)

Page 11: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

M:N M:N 매핑매핑

Page 12: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Entity SplittingEntity Splitting

Employees

ID

Name

Type

LoginID

Password

Person

ID

Name

Type

User

ID

LoginID

Password

Entity Data ModelEntity Data Model Relational Data SourceRelational Data Source

Page 13: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Table Per Hierarchy(TPH)Table Per Hierarchy(TPH)Entity Data ModelEntity Data Model Relational Data SourceRelational Data Source

Page 14: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Table Per Type (TPT)Table Per Type (TPT)Entity Data ModelEntity Data Model Relational Data SourceRelational Data Source

Page 15: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333

Page 16: ADO.NET Entity Framework  소개

http://blog.naver.com/woom333