【发布时间】:2017-02-15 18:48:37
【问题描述】:
我有一个包含两列名称和优先级的表。假设当前数据为 (A,1)(B,2)(C,3)(D,4)。
现在从 UI 中,我正在编辑 D。也就是说,我将 D 的优先级更新为 2。现在我应该将 D 的优先级更新为 2,并将 B 的优先级设置为 4。我正在交换 D 和 B 的优先级。 我该怎么做呢?我的项目使用实体框架。这就是我目前正在做的,
public void Swap(InputObject input)
{
NamePriority prio = context.NamePriorities.Where(w => w.Name == input.Name.FirstOrDefault();
NamePriority prioToSwap = context.NamePriorities.Where(w.Priority == input.Priority).FirstOrDefault();
prioToSwap.Priority = prio.Priority;
context.SaveChanges();
prio.Priority = input.Priority;
context.SaveChanges();
}
是否有更简单或更简洁的方法来执行此操作,例如使用 LINQ lambda 表达式或其他方法?
【问题讨论】:
-
您不需要保存更改两次,如果您再次从数据库中获取它,这将不会反映该值。您要完成的不是定期交换吗?与 int a = 3, int b = 2, int temp= 0 相同; temp=a;a=b;b=tmp?
标签: c# linq c#-4.0 entity-framework-6