我正在开发一个具有某种版本控制的 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(),但我如何从数据库中获取正确的值?
谢谢