根据 hashchanges 和 getchanges 记录检测到的域上下文更改
Log changes detected to domaincontext based on haschanges and getchanges
我有一个使用 Entity Framework 4 的 Silverlight 应用程序。在该应用程序中,用户可以将 add/remove Active Directory 组名称的字符串表示形式添加到配置中 - 更改不会保存在后台,直到 'save' 按钮被点击。
单击 'save' 时,Entity Framework 会使用对 DomainContext 的更改更新后端。这按预期工作。但我想记录所做的更改,并在每次 context.SubmitChanges() 触发之前通过电子邮件将它们发送出去。记录更改的最简单方法是什么?我已经有了可以重复使用的代码,以通过电子邮件发送要记录的更改。
我正在查看 context.ADGroupRules.EntityContainer.GetChanges() 并且可以在其中看到 AddedEntities 和 RemovedEntities 属性,但我不确定如何 'get at' 包含的片段中突出显示的字符串以便记录它.
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
}
我有一个使用 Entity Framework 4 的 Silverlight 应用程序。在该应用程序中,用户可以将 add/remove Active Directory 组名称的字符串表示形式添加到配置中 - 更改不会保存在后台,直到 'save' 按钮被点击。
单击 'save' 时,Entity Framework 会使用对 DomainContext 的更改更新后端。这按预期工作。但我想记录所做的更改,并在每次 context.SubmitChanges() 触发之前通过电子邮件将它们发送出去。记录更改的最简单方法是什么?我已经有了可以重复使用的代码,以通过电子邮件发送要记录的更改。
我正在查看 context.ADGroupRules.EntityContainer.GetChanges() 并且可以在其中看到 AddedEntities 和 RemovedEntities 属性,但我不确定如何 'get at' 包含的片段中突出显示的字符串以便记录它.
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
}