与SQL更新相比,LINQ更新问题.需要帮助

本文关键字:更新 新问题 LINQ 帮助 SQL | 更新日期: 2023-09-27 17:59:07

在下面的代码中,我使用TryUpdateModel按Id更新IndexOrder。以下更新命中DB 2次。按Id检索当前记录一次,而不是更新单行。

我正在使用LINQ To EF

 foreach (var i in indexArraay)
            {
                SubMenu existingMenu = _menu.SubSingle(Int32.Parse(i.id.ToString()));
                existingMenu.IndexOrder = string.IsNullOrEmpty(i.index.ToString()) ? 0 : Int32.Parse(i.index.ToString());
                TryUpdateModel(existingMenu);
                _menu.Add();
            }

在SQL中,我们不像下面的语句那样做。

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

我哪里错了吗?或者有更好的方法来编写LINQ更新表达式吗

我在这里不是说表演。

与SQL更新相比,LINQ更新问题.需要帮助

在LINQ to SQL中,可以使用Attach。下面的代码将更新id为1的现有菜单项的Order值。

int myId = 1;
int newOrder = 10;
using (var dataContext = new DataContext("..."))
{
    var table = dataContext.GetTable(typeof(Type));
    var menuItem = new MenuItem { Id = myId };
    table.Attach(menuItem);
    menuItem.Order = newOrder;
    dataContext.SubmitChanges();
}

[编辑]

对于LINQ to Entitys,请查看"附着和拆离对象"。

模拟对象是ObjectSet。附加方法。