本文整理汇总了C#中System.Data.Objects.ObjectStateEntry.GetModifiedProperties方法的典型用法代码示例。如果您正苦于以下问题:C# ObjectStateEntry.GetModifiedProperties方法的具体用法?C# ObjectStateEntry.GetModifiedProperties怎么用?C# ObjectStateEntry.GetModifiedProperties使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Objects.ObjectStateEntry
的用法示例。
在下文中一共展示了ObjectStateEntry.GetModifiedProperties方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetUpdatedEntityValues
private static IEnumerable<Tuple<string, object, object>> GetUpdatedEntityValues(ObjectStateEntry entry)
{
foreach (string propname in entry.GetModifiedProperties())
{
object newval = entry.CurrentValues[propname];
object oldval = entry.OriginalValues[propname];
yield return Tuple.Create(propname, newval, oldval);
}
}
示例2: TrackProperties
/// <summary>
/// Tracks the properties.
/// </summary>
/// <param name="objectStateEntry">The object state entry.</param>
protected void TrackProperties(ObjectStateEntry objectStateEntry)
{
foreach (string propertyName in objectStateEntry.GetModifiedProperties())
{
if (!IsStoreGenerated(propertyName, objectStateEntry))
{
var auditProperty = new TrackingAuditEntityProperty(propertyName, objectStateEntry);
if (auditProperty.HasChanges)
{
AuditEntityProperties.Add(auditProperty);
}
}
}
}
示例3: EventFromEntryState
internal static RepositoryMonitorEvent EventFromEntryState(DiscoDataContext Database, DbEntityEntry entityEntry, ObjectStateEntry entryState)
{
RepositoryMonitorEventType eventType;
string[] modifiedProperties = null;
Dictionary<string, object> entityKey = null;
Type entityType;
switch (entryState.State)
{
case System.Data.EntityState.Added:
eventType = RepositoryMonitorEventType.Added;
break;
case System.Data.EntityState.Deleted:
eventType = RepositoryMonitorEventType.Deleted;
break;
case System.Data.EntityState.Detached:
eventType = RepositoryMonitorEventType.Detached;
break;
case System.Data.EntityState.Modified:
eventType = RepositoryMonitorEventType.Modified;
break;
case System.Data.EntityState.Unchanged:
eventType = RepositoryMonitorEventType.Unchanged;
break;
default:
throw new NotSupportedException(string.Format("Database Entry State not supported: {0}", entryState.State.ToString()));
}
entityType = EntityTypeFromProxy(entryState.Entity.GetType());
// Only pass modified properties on Modified Event
if (eventType == RepositoryMonitorEventType.Modified)
modifiedProperties = entryState.GetModifiedProperties().ToArray();
else
modifiedProperties = new string[] { }; // Empty array for Added/Deleted.
// Don't pass entity key when entity newly added
if (eventType != RepositoryMonitorEventType.Added)
entityKey = DetermineEntityKey(entryState);
return new RepositoryMonitorEvent()
{
EventType = eventType,
Entity = entryState.Entity,
EntityKey = entityKey,
EntityType = entityType,
ModifiedProperties = modifiedProperties,
Database = Database,
dbEntityState = entityEntry,
objectEntryState = entryState
};
}
示例4: getModifiedColumns
private string getModifiedColumns(ObjectStateEntry entry)
{
List<string> props = entry.GetModifiedProperties().ToList();
StringBuilder serialXML = new StringBuilder();
XmlSerializer ser = new XmlSerializer(props.GetType());
using (XmlWriter xWriter = XmlWriter.Create(serialXML))
{
ser.Serialize(xWriter, props);
xWriter.Flush();
}
return serialXML.ToString(); ;
}