本文整理汇总了C#中IDataContext.Merge方法的典型用法代码示例。如果您正苦于以下问题:C# IDataContext.Merge方法的具体用法?C# IDataContext.Merge怎么用?C# IDataContext.Merge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataContext
的用法示例。
在下文中一共展示了IDataContext.Merge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RestoreViewModel
/// <summary>
/// Restores the view model from state context.
/// </summary>
/// <param name="viewModelState">The specified state <see cref="IDataContext" />.</param>
/// <param name="throwOnError">
/// <c>true</c> to throw an exception if the view model cannot be restored; <c>false</c> to return null.
/// </param>
/// <param name="dataContext">The specified <see cref="IDataContext" />.</param>
/// <returns>
/// An instance of <see cref="IViewModel" />.
/// </returns>
public IViewModel RestoreViewModel(IDataContext viewModelState, IDataContext dataContext, bool throwOnError)
{
try
{
dataContext = dataContext.ToNonReadOnly();
if (viewModelState == null)
viewModelState = DataContext.Empty;
else
dataContext.Merge(viewModelState);
IViewModel viewModel;
if (!dataContext.GetData(InitializationConstants.IgnoreRestoredViewModelCache))
{
Guid id;
if (viewModelState.TryGetData(IdViewModelConstant, out id))
{
viewModel = GetOrAddRestoredViewModel(id).GetViewModel();
if (viewModel != null)
return viewModel;
}
}
RestoredViewModel restoredParentViewModel = null;
IViewModel parentViewModel = null;
Guid idParent;
if (viewModelState.TryGetData(IdParentViewModelConstant, out idParent))
{
restoredParentViewModel = GetOrAddRestoredViewModel(idParent);
parentViewModel = restoredParentViewModel.GetViewModel();
if (parentViewModel != null)
dataContext.AddOrUpdate(InitializationConstants.ParentViewModel, parentViewModel);
}
viewModel = RestoreViewModel(viewModelState, dataContext);
if (viewModel != null)
{
if (restoredParentViewModel != null && parentViewModel == null)
restoredParentViewModel.AddChildViewModel(viewModel);
OnViewModelRestored(viewModel, viewModelState, dataContext);
Tracer.TraceViewModel(AuditAction.Restored, viewModel);
if (ReferenceEquals(viewModelState, DataContext.Empty))
Tracer.Warn("The view model '{0}' was restored without state.", viewModel);
return viewModel;
}
if (throwOnError)
throw ExceptionManager.ViewModelCannotBeRestored();
}
catch (Exception e)
{
if (throwOnError)
throw;
Tracer.Warn(e.Flatten(true));
}
return null;
}
示例2: RestoreViewModel
public IViewModel RestoreViewModel(IDataContext viewModelState, IDataContext dataContext, bool throwOnError)
{
try
{
dataContext = dataContext.ToNonReadOnly();
if (viewModelState == null)
viewModelState = DataContext.Empty;
else
dataContext.Merge(viewModelState);
IViewModel viewModel;
if (!dataContext.GetData(InitializationConstants.IgnoreViewModelCache))
{
Guid id;
if (viewModelState.TryGetData(ViewModelConstants.Id, out id))
{
viewModel = GetOrAddCachedViewModel(id).GetViewModel();
if (viewModel != null)
return viewModel;
}
}
CachedViewModel restoredParentViewModel = null;
IViewModel parentViewModel = null;
Guid idParent;
if (viewModelState.TryGetData(ViewModelConstants.IdParent, out idParent))
{
restoredParentViewModel = GetOrAddCachedViewModel(idParent);
parentViewModel = restoredParentViewModel.GetViewModel();
if (parentViewModel != null)
dataContext.AddOrUpdate(InitializationConstants.ParentViewModel, parentViewModel);
}
var restoring = Restoring;
if (restoring != null)
{
var args = new ViewModelRestoringEventArgs { Context = dataContext, ViewModelState = viewModelState };
restoring(this, args);
dataContext = args.Context ?? DataContext.Empty;
}
viewModel = RestoreViewModelInternal(viewModelState, dataContext);
if (viewModel != null)
{
if (restoredParentViewModel != null && parentViewModel == null)
restoredParentViewModel.AddChildViewModel(viewModel);
OnViewModelRestored(viewModel, viewModelState, dataContext);
var restored = Restored;
if (restored != null)
{
var args = new ViewModelRestoredEventArgs(viewModel)
{
Context = dataContext,
ViewModelState = viewModelState
};
restored(this, args);
}
Tracer.TraceViewModel(ViewModelLifecycleType.Restored, viewModel);
if (ReferenceEquals(viewModelState, DataContext.Empty))
Tracer.Warn("The view model '{0}' was restored without state.", viewModel);
return viewModel;
}
if (throwOnError)
throw ExceptionManager.ViewModelCannotBeRestored();
}
catch (Exception e)
{
if (throwOnError)
throw;
Tracer.Warn(e.Flatten(true));
}
return null;
}