/// <summary>
        /// Fires before entry start.
        /// </summary>
        /// <param name="entry">The entry.</param>
        /// <param name="entity">The entity.</param>
        internal void ExecuteOnEntryStartActions(ODataResource entry, object entity)
        {
            Debug.Assert(entry != null, "entry != null");
            Debug.Assert(entity != null, "entity != entity");

            if (this.writingStartResourceActions.Count > 0)
            {
                WritingEntryArgs args = new WritingEntryArgs(entry, entity);
                foreach (Action <WritingEntryArgs> entryArgsAction in this.writingStartResourceActions)
                {
                    entryArgsAction(args);
                }
            }
        }
示例#2
0
        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);
                }
            }
        }