我有一個包含兩列的表,名稱和優先級。我們假設當前的數據是(A,1)(B,2)(C,3)(D,4)。交換SQL Server表中的兩個值
現在從用戶界面,我正在編輯D.這是我正在更新D的優先級爲2.現在我應該更新D的優先級爲2,並將B的優先級設置爲4.我交換D和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;溫度= A; A = B; B = TMP? – Zinov