Esempio n. 1
0
        /// <summary>
        /// Gets or creates data object depending on whether entity object
        /// contains associated data object.
        /// </summary>
        /// <param name="context">DataObjectContext object.</param>
        /// <param name="entity">Entity object.</param>
        /// <returns>Generic data object.</returns>
        public static T GetOrCreateDataObject <T>(DataObjectContext context,
                                                  EntityObject entity)
            where T : DataObject
        {
            Debug.Assert(entity != null);

            // get associated data object
            IWrapDataAccess dataAccess = entity as IWrapDataAccess;

            if (dataAccess == null)
            {
                throw new DataException(Properties.Messages.Error_GetWrapDataObjectFailed);
            }

            T obj = GetDataObject(entity) as T;

            if (obj == null)
            {
                // associated object does not exist, create it
                obj = context.CreateObject <T>(entity);

                // associate object with entity
                dataAccess.DataObject = obj;
            }

            return(obj);
        }
Esempio n. 2
0
        /// <summary>
        /// Gets data object associated with specified entity object.
        /// </summary>
        /// <param name="entity">
        /// Entity object.
        /// </param>
        /// <returns>
        /// Data object or null if there is no data object associated
        /// with specified entity.
        /// </returns>
        public static DataObject GetDataObject(EntityObject entity)
        {
            Debug.Assert(entity != null);

            DataObject dataObject = null;

            IWrapDataAccess dataAccess = entity as IWrapDataAccess;

            dataObject = (dataAccess != null) ? dataAccess.DataObject : null;

            return(dataObject);
        }
Esempio n. 3
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Initializes a new instance of the <c>DataObject</c> class.
        /// </summary>
        protected DataObject(EntityObject entity)
        {
            Debug.Assert(entity != null);

            _InitValidation();

            // set entity's data object reference
            IWrapDataAccess wda = entity as IWrapDataAccess;

            if (wda == null)
            {
                Debug.Assert(false, "Entity object does not implement IWrapDataAccess.");
            }

            wda.DataObject = this;

            _entity = entity;
        }