¿Agregar una propiedad personalizada a Entity Framework?

asp.net c# entity-framework linq

Pregunta

Estoy utilizando Entity Framework por primera vez y quiero saber si es posible lo siguiente: he generado mis clases desde la base de datos y tengo una llamada categoría.

Obviamente, tiene todos mis campos en la tabla (ID, CategoryName, SortOrder, etc.) pero quiero saber si puedo agregar una propiedad personalizada que no esté en la tabla, pero en realidad es el resultado de un método personalizado.

Quiero agregar una nueva propiedad llamada 'CategoryURL' que es básicamente la propiedad 'CategoryName' que se ejecuta a través de un método personalizado y devuelve una cadena con guiones.

¿Mi pensamiento inicial es heredar de la categoría de categoría generada y crear algo como esto dentro?

public string CategoryURL 
{
    get{ return MyCustomMethod(this.CategoryName) }
}

¿Es este el enfoque correcto? ¿Y funcionará 'this.CategoryName' como creo que debería? Básicamente, el resultado final es cuando devuelvo una lista de 'Categoría'. Quiero que forme parte de la clase para poder usarla en mi bucle foreach.

Espero que esto tenga sentido?

Respuesta aceptada

Deberías usar una clase partial :

public partial class Category
{
    public string CategoryURL  
    { 
        get{ return MyCustomMethod(this.CategoryName); } 
    } 
}

De esta manera this.CategoryName funcionará como se esperaba.

Esto funciona porque las clases generadas por el generador de código de marco de entidad también generan clases partial . También significa que puede volver a generar las clases de forma segura desde la base de datos sin afectar las clases parciales que ha definido usted mismo.


Respuesta popular

Debe agregar el atributo [NotMapped] a la propiedad



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow