2011-06-13 12 views
46

Entity Framework의 유창함 -API에 대해 계속 들었지만 이에 대한 좋은 참고 자료를 찾기 위해 애 쓰고 있습니다. 이게 뭐야?Entity Framework의 유창한 API는 무엇입니까?

제공된 엔티티 프레임 워크와 모델링 도구를 사용합니다. 그게 다인가요? 아니면 뭔가 다른가요?

마찬가지로 광범위하지 않은 질문 인 경우 POCO는 무엇입니까? 나는 그것이 이전의 CLR 객체를 의미한다는 것을 알고 있지만, 디자이너 모델 도구로 이미 EF를 사용하고있는 누군가는 저에게 어떤 의미가 있습니까? 그 질문이 너무 모호하다면 무시하십시오. 나는 여기서 배우기 만하면 기꺼이 제공하려는 정보가 도움이됩니다.

답변

50

Entity Framework 4.1에는 데이터베이스 모델을 작성하는 코드의 첫 번째 방법이 도입되었습니다. 이것은 POCO (Plain Old CLR Objects)라고도합니다. 아이디어는 당신이 데이터베이스를 먼저 구축하고 그것으로부터 모델을 생성하는 것이 아니라 이러한 클래스들로부터 데이터베이스를 구축 할 수 있다는 것입니다.

좋은 블로그 기사와 MSDN 설명서가 많이 있습니다.

modelBuilder.Entity<Category>().HasKey(c => c.CategoryCode); 
: 시작하기에 좋은 장소

http://weblogs.asp.net/manavi/archive/2011/03/27/associations-in-ef-4-1-code-first-part-1-introduction-and-basic-concepts.aspx

감사

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx 유창 API 것, 이것은 기본적으로 데이터베이스 등을 구축하기 위해 EF 클래스를 사용하고 있습니다

Category 테이블에 기본 키가 있습니다. `CategoryCode '. 또한이 같은 PK를 선언 할 수

public class Category 
{ 
    [Key]  
    public int CategoryCode { get; set;} 
} 

[Key] 속성은 POCO 질문에 응답 Data Annotations

+2

제이슨를 확인하실 수 있습니다, 나는 유창하게 API를 대신 데이터 주석을 사용하기로 결정하면 나는 큰 뭔가를 놓친 거지.MVC로 시작한 것입니다.이 주제는 저에게 커브입니다. – Crismogram

+4

나는 당신이 빠진 것을 믿지 않는다. 그러나 유창한 API를 사용한다는 것은 다른 클래스와 관련된 속성에서 해당 설정을 전파하는 대신 모든 데이터베이스 설정을 한 가지 방법으로 적용 할 수 있음을 의미합니다. 그래서 당신이 정말로 선호하는 방식입니다. –

6

POCO는 Plain Old CLR Object를 나타냅니다.

Article Fluent API.

0

에서 온다 : 나는 현재 내가 일하고 있어요 응용 프로그램에서 데이터를 전달하는 POCO의를 사용하고 있습니다 내 Silverlight 프런트 엔드 (EF 그냥 그것을 절단 아니었다). 본질적으로, 나는 EF 모델 작성자가 만든 엔티티를 사용하여 직렬화 가능 버전으로 그들을 마사지 한 다음 전선을 통해 앞뒤로 보낸다. POCO는 필요에 따라 추상화 계층을 제공합니다. 필자는 DAO 패턴이 일반적으로하는 것처럼 DB 액세스에 사용하는 대신 DAO 패턴을 직렬화에 적용하는 것으로 생각합니다.

0

EF의 맥락에서, 기본적으로 http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

에서 POCO 클래스에 단락을 참조 POCO 클래스를 사용하면 데이터베이스 우선 기본적으로 무엇을 얻을이다 (엔티티 프레임 워크 EntityObject 클래스에서 상속하지 않는 엔티티 클래스입니다 또는 모델 우선). 다른 대답 중 하나가 언급됨에 따라 개체 직렬화가 쉬워 지지만 일부 개발 및 자동화 된 테스트 방법론은 Entity Framework에 대한 참조가없는 개체로 작업하는 것을 선호합니다.