모델 생성
당신은 할 수 있습니다 :
- 사용 컨벤션 모델 빌더 ASP.NET Web API에서 이것은 EF의 자체 컨벤션 모델 빌더가 생산하는 것과 다른 모델을 생성합니다.
IEdmModel
. 보다 이 질문 그러나 Model-First 또는 Database-First를 사용하는 경우 이 방법은 실제로 거꾸로 보이지만 대부분 작동합니다. - EF 모델을 직렬화하고이를 다시 작성하십시오
IEdmModel
(보다 이 질문). 다시 이것은 실제로 비효율적입니다. Model-First 또는 Database-First를 사용하는 경우 EDMX 파일을 제조하여IEdmModel
. 여전히 내부적으로 다른 모델을 생성하지만 적어도 CDSL은 CLR 코드 규칙보다 더 안정적인 형식이므로 두 개의 다른 컨벤션 기반 모델 빌더를 사용할 때 얻는 것보다 덜 놀라운 일이있을 수 있습니다.
그 이유는 ASP.NET Web API Odata Extensions가 EDMLIB를 사용하고 EF는 자체 코드를 사용하고 그들이 함께 일할 계획이 없습니다. 어쩌면 당신은 찾을 수 있습니다 이 폭언 궁금하다면 유용합니다.
API 작업
고유 한 소스에서 모델을 생성 한 후 (단일 장소에서 모델에서 작업 할 수 있음) 기본적으로 엔티티 당 컨트롤러를 만들어야합니다. 웹 API의 요점은 자동으로 물건을 구축하는 것이 아니라 개발자에게 유연성을 제공하는 것입니다. 그만큼 EntitySetController
중복성을 줄이는 데 도움이되지만 상자에서 모든 것을 제공하지는 않습니다.
물러서서
위에서 언급 한 란트에서 나는 또한 서비스 계층 API와 a 데이터 레이어 API. ASP.NET Web API는 서비스에 더 적합한 반면 Odata는 서비스를 어색하게 만듭니다. 반면, Odata는 데이터에 액세스 할 수있게하며 (본질적으로 편안한 SQL과 같은) 데이터 모델에 직접 연결되어 있기 때문에 WCF 데이터 서비스를 통해 보았던 많은 것들을 자동화 할 수 있습니다. Odata 확장 기능이있는 ASP.NET 웹 API는 중간에 있으며 그 값은 보편적으로 합의되지 않습니다 (서비스 API에 특정 비트의 ODATA URI 구문을 사용하는 것은 확실히 유용합니다).
ASP.NET Web API 주변의 최근의 버즈에 의해 너무 과장되지 마십시오. IT 및 WCF 데이터 서비스는 매우 다른 짐승이며 디자인의 다른 레이어에서 실행됩니다. 실제로, 멀티 계층 아키텍처에서는 WCF 데이터 서비스를 사용하여 구축 된 ODATA API 위에 앉아있는 ASP.NET 웹 API를 사용하여 구축 된 서비스 API를 잘 볼 수 있습니다.
제 조언은 구축하려는 내용에 대해 신중하게 생각하고 답변에 따라 ASP.NET Web API를 선택하고 노출 된 API가 데이터 중심 ODATA API와는 매우 다르다는 사실을 받아들입니다. WCF 데이터 서비스와 함께.
가능한 계획
웹에서 "비 CRUD 웹/RESTFUL/HYPERMEDIA API"와 같은 용어를 검색하거나 Servicestack과 같은 제품을 비교하여 데이터 지향 API를 옹호하여 웹에서 웹에서 웹에서 많은 자료를 찾을 수 있습니다.
아직 프로젝트의 성격에 대해 확신이 없다면 프로토 타입.
- 웹 API가있는 본질적으로 동일한 컨트롤러가 많으면 각각 정확히 하나의 엔터티에 매핑되면 API가 데이터 지향적입니다. WCF 데이터 서비스를 사용하십시오.
- WCF 데이터 서비스를 갖춘 많은 ODATA 작업과 어색한 엔티티가 있으면 API의 서버 측에 더 많은 도메인 로직이 필요하며 데이터 지향만으로도 충분하지 않습니다. 웹 API와 함께 이동하십시오. 여기서 좋은 규칙은 SQL DBMS에서 저장된 절차를 취급하는 것처럼 Odata 행동을 치료하는 것입니다. 실제로 Odata 서버를 DBM으로 취급하십시오. 왜냐하면 그것이 바로 그 이유이기 때문입니다. SQL 인터페이스 뒤에 놓지 않으면 Odata 인터페이스 뒤에 놓지 마십시오.
중요 (업데이트)
2014 년 3 월 27 일에 WCF 데이터 서비스가 될 것이라고 발표했습니다. 중단 ASP.NET Web API를 선호하는 Microsoft 여기에 노출 된 "Data-Layer"사용 사례를 처리하기 위해 Microsoft는 ASP.NET Web API를 확장 할 계획이라고 밝혔다. 약간 지역 사회 노력 또한 진행 중입니다. WCF 데이터 서비스는 어느 시점에서 오픈 소스를 제공 할 것이므로 새로운 관리자가 인수 할 수는 없지만 불확실하지는 않습니다.