Entity Framework 6.x no soporta XML data types

Entity Framework no soporta XML dataType de forma nativa y esto puede ser un problema en determinados escenarios. Esto es cierto en la versión 5.0 y despues de revisar este post parece ser que tampoco esta soportado en la versión 6.0.

El siguiente snippet permite usar el tipo XElement en nuestro modelo aunque no podremos usar esta propiedad directamente en nuestras queries linq. Si podremos acceder a la propiedad GlobalValuesWrapper que nos mantiene la propiedad GlobalValues que si está mapeada a la base de datos.

/// <summary>
/// Global values for localization. In xml format.
/// </summary>
public virtual string GlobalValues { get; set; }
[NotMapped]
public XElement GlobalValuesWrapper
{
    get { return XElement.Parse(GlobalValues); }
    set { GlobalValues = value.ToString(); }
}

Es simple pero sirve para lo que se pretende.

Supongo que el soporte de XML es muy complejo y espero que venga soportado en futuras revisiones.

El mapeo de la propiedad  “GlobalValues” se hará en una columna de tipo nvarchar(MAX) por lo que no es necesario que sea un fragmento XML, sino que puede ser un documento XML completo, incluida la declaración y los espacios de nombres si los tuviera.

Una respuesta a “Entity Framework 6.x no soporta XML data types”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *