ASP.Net에서 WebAPI를 사용하여 Entity Framework 객체에 대한 액세스를 허용했습니다. 내가 겪고있는 문제는 최종 고객이 사용할 수 있도록 개체를 사용자 지정 POCO로 변환하는 것입니다. Entity Framework 개체를 사용자 지정 POCO로 변환해야합니다.ASP.Net WebAPI IIQueryable POCO 객체로 변환
우리의 SQL 데이터베이스의 예를 들어 우리는 다음과 같은 속성
와 Tbl_Person이 같은 특성을 가진 엔티티 프레임 워크 클래스 사람에 FIRSTNAME SureName 생년월일 (DateOfBirth) AnnualSalary이 테이블 맵을 PersonID.
이 이름 나이 SalaryRange
나는 또한 JSON & XMLoutput으로 현재의 기능을 유지하려면에게 PersonID : 는하지만은 최종 고객이 액세스 할 때이 같은 POCO를 얻을 수 있도록 속성을 변경하려면 OData 쿼리를 허용합니다. 나는 '수집'이 하나로, OData 쿼리에 내 데이터베이스 컨텍스트 applyto 시도하고있다 그러나이 작업 될 것 같지 않습니다 올바르게 아래 코드 예제 참조하십시오
1 : 나는 두 가지 문제가
Imports System.Net
Imports System.Web.Http
Imports System.Data.Entity
Public Class PeopleData
Inherits DbContext
Public Property People() As DbSet(Of Person)
End Class
Public Class Person
Public Property PersonID() As Integer
Public Property FirstName() As String
Public Property SureName() As String
Public Property DateOFBirth() As Date
Public Property AnnualSalary() As Integer
End Class
Public Class PeopleController
Inherits System.Web.Http.ApiController
Private db As New PeopleData
Function GetPeople(query As OData.Query.ODataQueryOptions(Of Person)) As IQueryable(Of apiPerson)
Dim pep = query.ApplyTo(db.People)
Dim resPep As New List(Of apiPerson)
For Each p In pep
resPep.Add(New apiPerson(p))
Next
Return resPep.AsQueryable
End Function
End Class
Public Class apiPerson
Public Sub New(ByVal p As Person)
PersonID = p.PersonID
Name = p.FirstName & " " & p.SureName
Age = Date.Now.Year - p.DateOFBirth.Year
If p.AnnualSalary > 15000 Then
SalaryRange = "High"
Else
SalaryRange = "Low"
End If
End Sub
Public Property PersonID() As Integer
Public Property Name() As String
Public Property Age() As Integer
Public Property SalaryRange() As String
End Class
을 API 도움말 페이지가 채워지지 않고 '샘플을 사용할 수 없습니다.'라는 오류 만 발생합니다. 나는 동적 도움말 페이지 &을 좋아해서 코드 주석을 받았다. 이것은 문서를 관리하는 정말 빠르고 쉬운 방법이다. ApiPerson과 어떻게 일할 수 있습니까?
2)/api/people을 사용하면 $ filter = Age eq 29 오류가 발생합니다. 'MvcApiPeople.Person'유형에 'Age'속성이 없습니다. LINQ 쿼리가 '사람'에게 전달되었으며 그 속성은 존재하지 않지만 실제 데이터베이스 개체의 다른 속성에 매핑하기 위해 어떻게 '번역'쿼리를 사용할 수 있습니까?
"제대로 작동하지 않는 것 같습니다"에 대해 자세히 설명해 줄 수 있습니까? 예상되는 결과는 무엇이며 실제 결과는 무엇입니까? –
안녕하세요 RaghuRam Nadiminti, 제가 극복하고자하는 두 가지 문제에 대한 세부 사항을 추가했습니다. –