Con el marco de entidad, ¿es posible agregar métodos a una clase de objeto? Por ejemplo, tengo un mapeo CLIENTE y me gustaría crear un método "getAgeFromBirhDate".Agregar métodos a un modelo utilizando el marco de entidad
Respuesta
Sí. Es posible. Entity Framework genera Partial Classes.
Eso significa que puede crear otro archivo que contenga otra parte de la definición de Clase parcial (con sus métodos adicionales) y todo funcionará perfectamente.
public static class ModelExtended
{
public static void SaveModelToXML(this Model1Container model, string xmlfilePath)
{
///some code
}
}
Esto creará un método de extensión que está bien la mayor parte del tiempo. Sin embargo, si desea agregar una propiedad (para apuntarla a expresiones de propiedad), las clases parciales serán el camino a seguir. – dognose
Un ejemplo para la primera respuesta:
si tiene una entidad llamada Flower
puede utilizar esta clase partial
para añadir método a ella:
namespace Garden //same as namespace of your entity object
{
public partial class Flower
{
public static Flower Get(int id)
{
//
}
}
}
Asumiendo que tiene su clase parcial con un precio de atributo de Entity Framework de la base de datos:
namespace Garden //same as namespace of your entity object
{
public partial class Flower
{
public int price;
public string name;
// Any other code ...
}
}
si no desea utilizar otra clase parcial, puede definir su propia clase personalizada que contenga la entidad original almacenada como un atributo. Se pueden añadir entonces cualquier atributo personalizado extra y método
namespace Garden //same as namespace of your entity object
{
public class CustomFlower
{
public Flower originalFlowerEntityFramework;
// An extra custom attribute
public int standardPrice;
public CustomFlower(Flower paramOriginalFlowerEntityFramework)
{
this.originalFlowerEntityFramework = paramOriginalFlowerEntityFramework
}
// An extra custom method
public int priceCustomFlowerMethod()
{
if (this.originalFlowerEntityFramework.name == "Rose")
return this.originalFlowerEntityFramework.price * 3 ;
else
return this.price ;
}
}
}
Entonces dondequiera que desee utilizarlo, se crea el objeto clase personalizada y almacenar en ella la del marco de la entidad:
//Your Entity Framework class
Flower aFlower = new Flower();
aFlower.price = 10;
aFlower.name = "Rose";
// or any other code ...
// Your custom class
CustomFlower cFlower = new CustomFlower(aFlower);
cFlower.standardPrice = 20;
MessageBox.Show("Original Price : " + cFlower.originalFlowerEntityFramework.price);
// Will display 10
MessageBox.Show("Standard price : " + cFlower.standardPrice);
// Will display 20
MessageBox.Show("Custom Price : " + cFlower.priceCustomFlowerMethod());
// Will display 30
- 1. Conectarse a un modelo de entidad utilizando Reflection
- 2. Agregar métodos personalizados a un NSManagedObject subclasificado
- 3. Modelo de marco de la entidad primera marca de tiempo
- 4. Entidad Marco: actualizar entidad o agregar si no existe
- 5. Python/Django: ¿Agregar métodos de modelo personalizados?
- 6. "Ordenar por Col1, Col2" utilizando el marco de entidad
- 7. Restaurar eliminados campo del modelo de entidad Marco de W/O borrar la entidad
- 8. Actualizar un procedimiento almacenado en el marco de entidad 3.5
- 9. dependencia circular en el marco de entidad
- 10. Modificación de un modelo de marco de entidad en tiempo de ejecución
- 11. ¿Usa MSBuild para construir el Modelo de Entidad Marco sin usar el Archivo de Proyecto?
- 12. Entidad marco POCO
- 13. ¿Cómo es el rendimiento del marco de entidad 4 frente al marco de entidad 3.5?
- 14. Procedimientos almacenados en el marco de entidad
- 15. distintas en el marco Entidad
- 16. Programa contra un proyecto de base de datos utilizando el marco de entidad
- 17. Marco de la entidad y el problema
- 18. asp.net mvc modelos vs entidad marco modelos
- 19. Marco de Entidad Marco de muchos a muchos, clúster frente a índice no agrupado
- 20. ¿Trabajando con el marco de la entidad, forma preferida?
- 21. Ejecutando sql en el marco de entidad?
- 22. Mapeo de Ingreso mesas en el marco de la entidad
- 23. Uso del marco de entidad para agregar entidades existentes a una colección en una entidad recién creada
- 24. Marco de la entidad de referencia circular
- 25. Generar Enum a partir de los valores presentes en una tabla utilizando el marco de Entidad ADO.NET
- 26. Unión en el marco de la entidad
- 27. Entidad marco genérico
- 28. Marco de entidad: Agregar propiedades/entidades durante el tiempo de ejecución
- 29. tipo complejo en el marco de entidad
- 30. Entidad Proxy Marco
using System ; usando System.Collections.Generic; usando System.Linq; usando System.Web; FOO.Models de espacio de nombres { clase parcial pública FOO_USERS { barra public void() { // el código del método aquí }} } – eka808
funciona este código :) – eka808
¿Es posible utilizar ese método dentro de una consulta LINQ? .. – Json