2016-04-06 63 views
0

我試圖使用lightswitch的一般方法(即更新)來保存實體數據。以下是以下代碼。我無法弄清楚我缺少的東西。代碼或用戶界面中沒有錯誤。它只是沒有得到保存。Lightswitch Updating()方法不保存數據庫中的任何數據

partial void viewFamilyProcessDatas_Updating(viewFamilyProcessData entity) 
    { 

     var AutoAddMissingListing = entity.AutoAddMissingListing; 
     var AutoAddOddLots = entity.AutoAddOddLots; 
     var DefaultFilterValue = entity.DefaultFilterValue; 
     var ExcludeZeroNumberOfUnits = entity.ExcludeZeroNumberOfUnits; 
     //objFamilyProcessData.FamilyID = entity.FamilyID; 
     var IgnoreForPricing = entity.IgnoreForPricing; 
     var LimitEndDate = entity.LimitEndDate; 
     var OffsetFromMaxAsAtDate = entity.OffsetFromMaxAsAtDate; 
     var PrefilterConstituents = entity.PrefilterConstituents; 
     var TimeDataExpires = entity.TimeDataExpires; 

     entity.AutoAddMissingListing = AutoAddMissingListing; 
     entity.AutoAddOddLots = AutoAddOddLots; 
     entity.DefaultFilterValue = DefaultFilterValue; 
     entity.ExcludeZeroNumberOfUnits = ExcludeZeroNumberOfUnits; 
     entity.IgnoreForPricing = IgnoreForPricing; 
     entity.LimitEndDate = LimitEndDate; 
     entity.OffsetFromMaxAsAtDate = OffsetFromMaxAsAtDate; 
     entity.PrefilterConstituents = PrefilterConstituents; 
     entity.TimeDataExpires = TimeDataExpires; 

     //this.DataWorkspace.SolaDBServerData.Details.DiscardChanges(); 
     entity.Details.DiscardChanges(); 



    } 
+0

你實際上並不做任何事情,再加上你打電話DiscardChanges()。機會是你的實際DataSource不可更新。你應該做的第一件事是驗證數據庫中的每個表都有一個PrimaryKey。然後驗證所有的外鍵是否定義回PrimaryKey。然後更新你的lightswitch數據源。然後刪除上面的更新方法,因爲它實際上沒有做任何事情。 – Kris

+0

Hi @Kris我的數據源是可更新的。我已經證實,我的數據庫中的每個表都有一個PK。所有的FK都被定義回PK。我已經更新了LS數據源。但我無法刪除更新方法。因爲我正在嘗試將數據直接保存到View中。我的視圖中的TimeDataExpires屬性需要以這種方式保存數據。您可以請我建議我如何添加C#代碼,以便能夠更新實體上的數據 –

+0

HI @Kris,如果我刪除DiscardChanges()行,那麼這會給我一個錯誤,說「更新或插入視圖或函數'dbo.viewFamilyProcessData'失敗,因爲它包含派生或常量字段。「 –

回答

0

解決這一終於來到了這一點:

partial void vwFamilyProcessDatas_Updating(vwFamilyProcessData entity) 
    { 
     if(entity.Details.EntityState.ToString() == "Modified") 
     { 
      var AutoAddMissingListing = entity.AutoAddMissingListing; 
      var AutoAddOddLots = entity.AutoAddOddLots; 
      var DefaultFilterValue = entity.DefaultFilterValue; 
      var ExcludeZeroNumberOfUnits = entity.ExcludeZeroNumberOfUnits; 
      var IgnoreForPricing = entity.IgnoreForPricing; 
      var LimitEndDate = entity.LimitEndDate; 
      var OffsetFromMaxAsAtDate = entity.OffsetFromMaxAsAtDate; 
      var PrefilterConstituents = entity.PrefilterConstituents; 
      var TimeDataExpires = entity.TimeDataExpires; 

      tblFamily objFamily = tblFamilies.Where(f => f.FamilyID == entity.FamilyID).Single(); 
      objFamily.AutoAddMissingListing = AutoAddMissingListing; 
      objFamily.AutoAddOddLots = AutoAddOddLots; 
      objFamily.DefaultFilterValue = DefaultFilterValue; 
      objFamily.ExcludeZeroNumberOfUnits = ExcludeZeroNumberOfUnits; 
      objFamily.IgnoreForPricing = IgnoreForPricing; 
      objFamily.LimitEndDate = LimitEndDate; 
      objFamily.OffsetFromMaxAsAtDate = OffsetFromMaxAsAtDate; 
      objFamily.PrefilterConstituents = PrefilterConstituents; 
      objFamily.TimeDataExpires = TimeSpan.Parse(TimeDataExpires); 

      entity.Details.DiscardChanges(); 
     }} 
相關問題