使用Linq更新SortOrder到Sql

时间:2014-01-28 10:43:45

标签: c# asp.net sql-server sorting linq-to-sql

我有一张桌子,其中我有一些产品,用户可以使用向上和向下按钮按照他们的要求对产品进行分类,产品将在现场按此顺序显示< / p>

我编写了一个存储过程来更新排序顺序,但是现在我将我的网站转换为Linq to Sql,我仍然坚持如何根据用户的操作更新排序顺序。

这是我的存储过程。

ALTER PROCEDURE [dbo].[user_SortProductsOrder]
    @CurrentSortOrder INT,
    @TempSortOrder INT,
    @TownId INT,
    @SectionId INT
AS
BEGIN
    UPDATE HomePageSectionSettings SET SortOrder = 
    CASE SortOrder  WHEN @TempSortOrder THEN @CurrentSortOrder
                    WHEN @CurrentSortOrder THEN @TempSortOrder
                    ELSE SortOrder
    END
    WHERE TownId = @TownId
        AND SectionId = @SectionId
END

下面是我正在尝试使用Linq to Sql但是徒劳无功。

var updateSortOrder = db.HomePageSectionSettings.Where(item => item.TownId == int.Parse(drpTowns.SelectedValue) && item.SectionId == int.Parse(drpSectionName.SelectedValue)).FirstOrDefault();
        if (updateSortOrder.SortOrder == tempSortOrder)
        {
            updateSortOrder.SortOrder = currentSortOrder;
        }
        else if (updateSortOrder.SortOrder == currentSortOrder)
        {
            updateSortOrder.SortOrder = tempSortOrder;
        }
        db.SubmitChanges();

我可以理解if逻辑出了什么问题,但是我无法得出正确的结论

任何人都可以帮助修复这个逻辑。

0 个答案:

没有答案
相关问题