ado.net entity framework 소개
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 PresentationTRANSCRIPT
http://blog.naver.com/woom333
ADO.NET Entity Framework ADO.NET Entity Framework 소개소개
한용희Microsoft Visual C# MVPhttp://blog.naver.com/woom333
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
http://blog.naver.com/woom333
Programmer VS. Data Base AdministratorProgrammer VS. Data Base Administrator
http://blog.naver.com/woom333
Object VS. DataObject VS. Data
Table
ObjectObjectObjectObject
Table TableObjectObjectObjectObject ObjectObjectObjectObject
StorageModel
ConceptualModel
Mapping
http://blog.naver.com/woom333
LINQLINQ(Language Integrated Queries)(Language Integrated Queries)
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
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) 지원지원
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 관계 표현관계 표현
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;
http://blog.naver.com/woom333
유연한 매핑 유연한 매핑 (Flexible Mapping)(Flexible Mapping)
http://blog.naver.com/woom333
M:N M:N 매핑매핑
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
http://blog.naver.com/woom333
Table Per Hierarchy(TPH)Table Per Hierarchy(TPH)Entity Data ModelEntity Data Model Relational Data SourceRelational Data Source
http://blog.naver.com/woom333
Table Per Type (TPT)Table Per Type (TPT)Entity Data ModelEntity Data Model Relational Data SourceRelational Data Source
http://blog.naver.com/woom333
http://blog.naver.com/woom333