2016-04-06 7 views
0

ライトスイッチの一般的な方法を使用してエンティティデータを保存しようとしています。これは更新中です。以下は、以下のコードです。私は何が欠けているのか理解できません。コードまたはUIにエラーはありません。何も救われないだけです。Lightswitch Updating()メソッドはDBにデータを保存しません

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を呼んでいます。実際のデータソースは更新可能ではない可能性があります。まず、データベース内のすべてのテーブルにPrimaryKeyがあることを確認する必要があります。次に、すべてのForeignKeysがPrimaryKeyに戻って定義されていることを確認します。その後、ライトスイッチのDataSourceを更新します。上記のUpdatingメソッドは、実際に何もしないので削除してください。 – Kris

+0

こんにちは@Kris My DataSourceは更新可能です。私は自分のDB内のすべてのテーブルにPKがあることを確認しました。また、すべてのFKはPKに戻って定義されています。 LSデータソースを更新しました。しかし、私はUpdatingメソッドを削除することはできません。私はビューに直接データを保存しようとしているからです。私のビューの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(); 
     }} 
関連する問題