2011-03-31 4 views
1

디버깅중인 응용 프로그램의 기능으로 사용자가 제품에 대한 리뷰를 만들 수 있습니다. 입력 양식에는 기존 검토 횟수를 기반으로 자동 채우기되는 ReviewId 필드가 있으며 '1'씩 순차적으로 증가합니다. 기존 제품의 경우에는 정상적으로 작동합니다.새 항목의 순차 값 자동 할당 문제

새 제품에는 이전 검토가 없으므로 사용자가 도메인 서비스를 만들려고하면 응용 프로그램에서 도메인 서비스 예외가 발생합니다. 마지막 리뷰 ID를 찾는 코드가 있기 때문에 이것이 알 수 있습니다.하지만 새 제품이므로 오류가 발생하지 않습니다. 난 단지 그것을 해결하는 데 필요한 코드를 알아낼 수 없습니다 (PHP 프로그래머가 C#/Silverlight에서 작업). 데이터베이스를 수정할 수있는 권한이 없으므로 프로그래밍 방식으로이 작업을 수행하려고합니다. 여기

내가 무엇을 가지고 :

AddReviewChildWindow.cs -

공공 무효 GetNewReviewNumber()
{
ReviewsDomainContext 검토 = 새로운 ReviewsDomainContext을();

InvokeOperation count = review.GetLastReviewNumber (ProductId);

count.Completed + = 새 System.EventHandler (GetNewReviewNumberCompleted);
}

그리고 DomainServices.cs -

[설명 (". 제품과 관련된 마지막 검토의 ID 번호를 반환합니다")]
[호출]

공개 System.Int32 GetLastReviewNumber (nullable productId)
{

int retVal = 0;

// 제품 리뷰 목록을 가져옵니다.
IQueryable reviews = GetProductReviews (productId);

// 마지막 것을 가져 오십시오.
리뷰 검토 = 리뷰. 마지막();

// 새 것으로 지정하십시오.
retVal = review.ReviewNumber;
retVal ++; // 하나를 추가하십시오.

return retVal;
}

이 C 번호를 아는 사람을위한 쉬운해야, 내가 생각 -하지만 난 그냥 그것을 찾을 수 없습니다. 감사! 내가 제대로 귀하의 요구 사항을 이해한다면

+0

진드기 오프 주제,하지만 ReviewId 양식 필드는 사운드 디자인이 아니다. 사용자 A가 양식을 열고 ReviewId = 2를 얻은 다음 사용자 B가 양식을 열고 ReviewId = 2를 얻은 다음 두 항목을 모두 제출한다고 가정 해보십시오. 검토를 삽입하기 직전에 ID를 생성해야합니다. – Misko

답변

1

이 작동합니다 : 새로운 후기

public Int32 GetLastReviewNumber(Nullable productId) 
{ 
    int retVal = 0; 

    //Get the list of reviews for product. 
    IQueryable<Review> reviews = GetProductReviews(productId); 

    //Get the last one. 
    if(reviews.Count() != 0) 
    { 
     Review review = reviews.Last(); 

     //Assign new one. 
     retVal = review.ReviewNumber; 
    } 
    retVal++;//add one to it. 

    return retVal;  
} 
+0

그랬습니다. 나는 그것이 단순한 것이라고 생각했다. 감사!! –

+0

도와 드리겠습니다. 건배! – Sorax