我正在調試的應用程序中的一項功能允許用戶爲產品創建評論。輸入表單有一個ReviewId字段,根據現有評論的數量自動填充 - 它按順序增加'1'。對於現有的產品,這工作正常。問題自動爲新項目分配連續值
對於新產品,以前沒有評論,所以當用戶嘗試創建一個時,應用程序會拋出一個域服務異常。我知道這是因爲有一些代碼正在尋找最後的審查ID,但由於它是一個新產品,沒有一個代碼會導致錯誤。我只是無法弄清楚修復它的代碼(PHP程序員在C#/ Silverlight中工作)。我沒有修改數據庫的權限,所以我試圖以編程方式執行此操作。
以下是我有:
AddReviewChildWindow.cs -
公共無效GetNewReviewNumber()
{ReviewsDomainContext複習=新ReviewsDomainContext();}
InvokeOperation count = review.GetLastReviewNumber(ProductId);
count.Completed + = new System.EventHandler(GetNewReviewNumberCompleted);
而DomainServices.cs -
[說明( 「返回與產品相關聯的最後一次審查的ID號」)
[調用]
公衆System.Int32 GetLastReviewNumber(可爲空的productId)
{}
INT retVal的= 0;
//獲得產品評論列表。
IQueryable reviews = GetProductReviews(productId);
//獲取最後一個。
評論複習= reviews.Last();
//指定一個新的。
retVal = review.ReviewNumber;
retVal ++; //添加一個。
return retVal;
這應該是一個容易的人誰知道C#,我想 - 但我無法找到它。謝謝!
蟎題外話,但ReviewId表單字段新的評論是不健全的設計。想象一下,用戶A打開表單並獲得ReviewId = 2,然後用戶B打開表單並獲取ReviewId = 2,然後他們都提交...您應該在插入評論之前立即生成ID。 – Misko 2011-03-31 17:27:38