Web API 와 NHibernate ORM으로 응용 프로그램을 만듭니다 . get 메서드를 호출 할 때 문제가 있습니다. NHibernate Fluent 매핑 에는 많은 관계가 있습니다 . 예를 들면 :
public class Case : GuidEntityBase
{
public virtual CaseType CaseType { get; set; }
public virtual string CaseNumber { get; set; }
public virtual DateTime CaseDate { get; set; }
public virtual IList<Document> Documents { get; set; }
public Case()
{
Documents = new List<Document>();
}
}
public class Document : GuidEntityBase
{
public virtual DocumentType DocumentType { get; set; }
public virtual string DocumentNumber { get; set; }
public virtual DateTime DocumentDate { get; set; }
public virtual Case Case { get; set; }
}
따라서 HttpGet을 따라 호출하면
[Route("api/document/GetItem/{id}")]
[HttpGet]
public Document GetItem(string Id)
{
var response = service.GetItem(Id);
//response.Value.Case = null;
return response.Value;
}
문서 데이터를 얻지 만 동시에 케이스 데이터도 얻습니다. 이 프로세스를 어떻게 필터링 할 수 있습니까? 나는 response.Value.Case = null을 썼다 . , 그러나 그것은 해결책을위한 좋은 방법이 아닙니다.
엔터티를 보내는 것은 나쁜 생각입니다. 뷰를 기반으로 모델을 만들고 채우고 전송해야합니다.
public class DocumentDto
{
public Guid Id { get; set; }
public DocumentType DocumentType { get; set; }
public string DocumentNumber { get; set; }
public DateTime DocumentDate { get; set; }
}
[Route("api/document/GetItem/{id}")]
[HttpGet]
public DocumentDto GetItem(string Id)
{
var doc = service.GetItem(Id).Value;
return new DocumentDto(){
Id = doc.Id,
//set other properties from doc
};
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다