Silverlight 根据haschanges和getchanges记录检测到的对domaincontext的更改

Silverlight 根据haschanges和getchanges记录检测到的对domaincontext的更改,silverlight,entity-framework-4,Silverlight,Entity Framework 4,我有一个使用EntityFramework4的Silverlight应用程序。在应用程序中,用户可以在配置中添加/删除Active Directory组名的字符串表示形式-只有单击“保存”按钮,更改才会保存在后端 单击“保存”时,Entity Framework会使用对DomainContext的更改更新后端。这是预期的工作。但是我想在context.SubmitChanges()启动之前,记录正在进行的更改,并在每次发送电子邮件中发送这些更改。记录更改的最简单方法是什么?我已经有了代码,我可以

我有一个使用EntityFramework4的Silverlight应用程序。在应用程序中,用户可以在配置中添加/删除Active Directory组名的字符串表示形式-只有单击“保存”按钮,更改才会保存在后端

单击“保存”时,Entity Framework会使用对DomainContext的更改更新后端。这是预期的工作。但是我想在context.SubmitChanges()启动之前,记录正在进行的更改,并在每次发送电子邮件中发送这些更改。记录更改的最简单方法是什么?我已经有了代码,我可以重用这些代码来通过电子邮件发送要记录的更改

我正在查看context.ADGroupRules.EntityContainer.GetChanges(),可以看到其中的AddIdentity和RemovedEntities属性,但我不确定如何“获取”包含的snip中突出显示的字符串以记录它

        if (command == "Save")
            {
                if (_context.HasChanges)
                {
                    var changeSet = _context.ADGroupRules.EntityContainer.GetChanges();

                 //log and email changes here

                    _context.SubmitChanges(OnSubmitCompleted, null);
                }
            }
我已经想明白了

            if (command == "Save")
            {
               if (_context.HasChanges)
               {
                   var changeSet = _context.ADGroupRules.EntityContainer.GetChanges();
                   foreach (var entity in changeSet.AddedEntities.OfType<ADGroupRule>())
                   {
                       ADGroupRule rule = (ADGroupRule)entity;
                       Console.WriteLine(rule.ADGroupName);//simulate logging-emailing
                   }
if(命令==“保存”)
{
if(_context.HasChanges)
{
var changeSet=_context.ADGroupRules.EntityContainer.GetChanges();
foreach(changeSet.AddedEntities.OfType()中的var实体)
{
ADGroupRule=(ADGroupRule)实体;
Console.WriteLine(rule.ADGroupName);//模拟记录电子邮件
}