2012-04-30 88 views
0

我的表有兩個ID字段(我沒有放2個ID,所以不要問我爲什麼)。一個是主鍵,另一個是可空的重複字段,它將包含主鍵本身的值。使用LINQ更新列

public static void UpdateDuplicate_ID(Company updatingCompany) 
     { 
      Company tempCompany; 

      using (var context = new TestLiveDataContext()) 
      { 
       tempCompany = (from company in context.Companies 
          where company.Id == updatingCompany.Id 
          select company).FirstOrDefault(); 

       tempCompany.DuplicateId = updatingCompany.DuplicateId; 

       context.SubmitChanges(); 
      } 
     } 

看起來上面的代碼不起作用。我無法使用主鍵值更新重複的ID。任何人都可以告訴我我是否在這裏遺漏任何東西?

+1

你怎麼知道它不工作?你如何檢查? – KingCronus

+0

無法查看數據庫中更新的ID ... – Joshua

+0

您是否在作業上放置了斷點以檢查您是否確實將其分配給了正確的值? 該方法的重點不在於什麼?如果duplicateId始終與Id相同,則有更好的方法來執行此操作。 – KingCronus

回答

1

盡我所見,updatingCompanytempCompany似乎是相同的記錄。

如果是這種情況,如果稍後更改傳入的值並再次保存,則可能會覆蓋此方法之外的機會。

請問,爲什麼不改變updatingCompany的值,然後在自己的上下文中提交更改,而不是啓動新的更改?

這是除非我誤解了這個問題。