컬렉션에 [구성] 속성을 사용하고 있습니까?
RIA를 사용하면 개체 그래프에서 컬렉션을 처리 할 수있는 두 가지 옵션이 있습니다. [Composition] 속성을 사용하면 해당 하위 객체는 상위 객체를 통해서만 액세스 할 수 있습니다. [Composition] 속성을 사용하지 않는 경우 해당 객체의 삽입/업데이트/삭제를 처리하려면 DomainService에 SEPARATE 메서드가 필요합니다.
예제로 : Ticket 개체에 대한 변경 내용을 저장 한 서비스 메서드는 다음과 같습니다. Ticket 객체에는 TicketAction 항목의 컬렉션이 있습니다. 이러한 항목은 [구성] 속성으로 선언됩니다
이
[MetadataType(typeof (TicketMetadata))]
public partial class Ticket
{
internal sealed class TicketMetadata
{
[Key] public int TicketId;
[Required]
public DateTime IncidentDate;
[Include]
[Composition]
[Association("Ticket_TicketActions", "TicketId", "TicketId")]
public List<TicketAction> TicketActions;
}
}
같은이 모습을 업데이트하기위한 서비스 방법 : 새 TicketActions를 들어
public void Update(Ticket ticket)
{
foreach (var ticketAction in ticket.TicketActions)
{
if (ticketAction.IsNew)
ticketAction.TicketId = ticket.TicketId;
}
_ticketDataSource.Update(ticket);
}
이 티켓에 추가, 우리는 티켓을 연결해야합니다. TicketId를 TicketAction.TicketId에 저장하여 저장합니다. 나는 NHibernate를 사용하지 않고있다. (우리는 Oracle에 대해 ADO.NET을 사용하고 있지만 묻지는 않는다.)하지만 요점은 기술이 아니다. 열쇠를 적절하게 연결해야합니다.
이 시나리오에서는 [Composition] 특성을 사용하지 않는 경우 RIA에서 먼저 해당 메서드를 호출하고 TicketUpdate 메서드를 호출하기 때문에 TicketAction 개체에 대해 별도의 Insert 및 Update 메서드가 있어야합니다.
의미가 있습니까?