ある種のリビジョン コントロールを持つ 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() を実行するだけですが、データベースから正しい値を取得するにはどうすればよいでしょうか?
ありがとう