MediaDataObject Class
The entity used to store media data in the database.
Namespace: DevExpress.Persistent.BaseImpl.EF
Assembly: DevExpress.Persistent.BaseImpl.EFCore.v25.2.dll
NuGet Package: DevExpress.Persistent.BaseImpl.EFCore
Declaration
[Browsable(false)]
[EditorAlias("ImagePropertyEditor")]
[MediaDataObject("MediaDataKey", "MediaData", "MediaResource.MediaData")]
public class MediaDataObject :
BaseObject,
INotifyPropertyChanged,
INotifyPropertyChanging,
IEmptyCheckable
Remarks
You can use the MediaDataObject type to declare a reference property of a business class that is used to store and display an image.
WinForms and ASP.NET Core Blazor Image Property Editors are used automatically for properties of the MediaDataObject type.
You can find an example in the BLOB Image Properties in EF Core topic.
MediaDataObject is a container for three values:
-
A byte array object that is loaded from a database on demand when required. It is not loaded together with the
MediaDataObjectitself and may contain any type of media. This property is non-persistent, its value is stored using the MediaResource.MediaData persistent property to provide delayed loading. -
A key value of the string type. This value should not be changed from your code. It is updated automatically when the
MediaDatabyte array is changed and is unique for eachMediaDataObject.MediaDataKeyis used in a URL of theMediaDataloaded by a browser. The URL is generated under the following conditions.MediaDataKeyis constant whileMediaDatais not updated.- It is not required to load MediaData when generating the URL.
MediaDataKeycan be quickly obtained as it is not required to loadMediaDataevery time to calculate the key.
-
The
MediaResourceObjectobject which exposes theMediaDataproperty of the byte array type. TheMediaDataproperty of this object is persistent and stores the byte array returned by the MediaDataObject.MediaData property.
Currently, the Winforms and Blazor editors (ImagePropertyEditor) support the MediaDataObject property type partially - they use MediaData only, and do not provide caching.
Note
It is not recommend to change the MediaData value by direct database queries. In this instance, the URL will not change, and it will be required to manually refresh the page to see the changes.