首先,这不是一个多用户问题,因为我在本地数据库的开发版本上工作.
Row not found or changed当我执行db.SubmitChanges()时,我得到了不太明确的错误.如果我在SubmitChanges()发生之前中断执行,我可以检入SQL Server Management Studio并且该行确实存在!
这是整个函数的代码,只是为了让任何想要帮助的人在上下文中,但问题行最后是正确的(第48行).
更新这是一个非常奇怪的错误:错误是由更新matchingTrans.Url引起的(请参阅倒数第二行代码).注释掉这一行并不会引发错误 - 即使匹配的Trans.Title仍然得到更新.
private static void MenuItemUpdate(int languageId, NavigationItem item)
{
using (var db = DataContextFactory.Create<MyDataContext>())
{
// Select existing menu item from database.
var dbItem =
(from i in db.MenuItems
where i.Id == item.Id
select i).Single();
// Obtain ID of link type.
dbItem.FkLinkTypeId = GetLinkTypeByName(
Enum.GetName(typeof (NavigationItemLinkType), item.LinkType)).Id;
// Update the Link field with what is given.
dbItem.Link = item.Link;
db.SubmitChanges();
// Item already exists …Run Code Online (Sandbox Code Playgroud)