我正在调试的应用程序中的一项功能允许用户创建产品评论。输入表单有一个ReviewId字段,该字段根据现有评论的数量自动填充 - 按顺序增加“1”。对于现有产品,这很好。
对于新产品,之前没有评论,因此当用户尝试创建一个评论时,该应用程序会引发域服务异常。我知道这是因为有一些代码正在寻找最后的评论ID,但由于它是一个新产品,没有一个,这会导致错误。我只是无法弄清楚修复它所需的代码(PHP程序员在C#/ Silverlight中工作)。我没有访问修改数据库的权限,所以我试图以编程方式执行此操作。
这就是我所拥有的:
AddReviewChildWindow.cs -
public void GetNewReviewNumber()
{ReviewsDomainContext review = new ReviewsDomainContext();}
InvokeOperation count = review.GetLastReviewNumber(ProductId);
count.Completed + = new System.EventHandler(GetNewReviewNumberCompleted);
和DomainServices.cs -
[说明(“返回与产品关联的上次审核的ID号。”)]
[调用]
public System.Int32 GetLastReviewNumber(Nullable productId)
{}
int retVal = 0;
//获取产品评论列表 IQueryable reviews = GetProductReviews(productId);
//得到最后一个。
评论评论=评论。最后();
//分配新的。
retVal = review.ReviewNumber;
retVal ++; //加一个。
返回retVal;
对于那些了解C#的人来说,这应该是一个简单的方法,我想 - 但我找不到它。谢谢!
答案 0 :(得分: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;
}