/// <summary> /// Fires before entry start. /// </summary> /// <param name="entry">The entry.</param> /// <param name="entity">The entity.</param> internal void ExecuteOnEntryStartActions(ODataEntry entry, object entity) { Debug.Assert(entry != null, "entry != null"); Debug.Assert(entity != null, "entity != entity"); if (this.writingStartEntryActions.Count > 0) { WritingEntryArgs args = new WritingEntryArgs(entry, entity); foreach (Action <WritingEntryArgs> entryArgsAction in this.writingStartEntryActions) { entryArgsAction(args); } } }
private void EntryStarting(WritingEntryArgs ea) { var odataProps = ea.Entry.Properties as List<ODataProperty>; var entityState = contextWrapper.Context.Entities.First(e => e.Entity == ea.Entity).State; // Send up an undeclared property on an Open Type. if (entityState == EntityStates.Modified || entityState == EntityStates.Added) { if (ea.Entity.GetType() == typeof(Row)) { // In practice, the data from this undeclared property would probably be stored in a transient property of the partial companion class to the client proxy. var undeclaredOdataProperty = new ODataProperty() { Name = "dynamicPropertyKey", Value = "dynamicPropertyValue" }; odataProps.Add(undeclaredOdataProperty); } } }
/// <summary> /// Fires before entry start. /// </summary> /// <param name="entry">The entry.</param> /// <param name="entity">The entity.</param> internal void ExecuteOnEntryStartActions(ODataEntry entry, object entity) { Debug.Assert(entry != null, "entry != null"); Debug.Assert(entity != null, "entity != entity"); if (this.writingStartEntryActions.Count > 0) { WritingEntryArgs args = new WritingEntryArgs(entry, entity); foreach (Action<WritingEntryArgs> entryArgsAction in this.writingStartEntryActions) { entryArgsAction(args); } } }