1

ある種のリビジョン コントロールを持つ Lightswitch アプリを開発しています。ユーザーがアイテムを変更して保存をクリックすると、データベース内のその行を更新する代わりに、変更されたデータを含む新しい行が必要になり、元の行が元の状態に戻ります。このコードで変更されたものの新しい行を作成することができました:

        var changeSet = this.DataWorkspace.dataEntity.Details.GetChanges();
        var modified = changeSet.ModifiedEntities.OfType<RuleEntry>();

        foreach (RuleEntry re in modified)
        {

            //Create a new rule entry
            RuleEntry newRuleEntryRevision = this.DataWorkspace.dataEntity.RuleEntries.AddNew();
            newRuleEntryRevision.Country1 = re.Country1;
            newRuleEntryRevision.Family1 = re.Family1;
            newRuleEntryRevision.IP1 = re.IP1;
            newRuleEntryRevision.RuleKey = re.RuleKey;
            newRuleEntryRevision.RuleStatus = re.RuleStatus;
            newRuleEntryRevision.Title = re.Title;
            newRuleEntryRevision.Edited = DateTime.Now;
            newRuleEntryRevision.IsReal = false;

しかし、それを行った後、「re」エンティティを以前の状態に戻したい、つまり、データベースにある値を持つ必要があります。

次のようにフィールドを設定できることはわかっています。

re.Country1 = Countries.Sweden;

そして、SaveChanges() を実行するだけですが、データベースから正しい値を取得するにはどうすればよいでしょうか?

ありがとう

4

1 に答える 1

1

手探りでやっと見つけました!元の値は次のように見つけることができます。

re.Country1 = re.Details.Properties.Country1.OriginalValue;

私の最初の投稿を見て、「再」が何であるかを確認してください。

于 2013-04-12T09:35:38.200 に答える