/// <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); }
/// <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); }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /// <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; }