Quiero crear una propiedad personalizada en una de mis entidades mapeadas desde la base de datos, sin embargo esta propiedad no está mapeada a la base de datos, creé la propiedad usando clases parciales pero cuando trato de compilar recibo un error que me dice que la propiedad no está mapeada. ¿Hay algún atributo o algo que deba agregar? Gracias por adelantado.Creando una propiedad no mapeada en una entidad (entidad framework)
Respuesta
Use clases parciales para agregar las propiedades o los métodos que desee agregar. P.ej.
namespace WhateverNamespaceYourEntityModelIsIn
{
public partial class TheNameOfYourEntity
{
public string MyNewProperty { get; set; }
}
}
y eso le conviene.
También puede marcar su propiedad con el atributo [NotMapped]
o utilizar el método Ignore
con la API fluida.
Propiedad
public class EntityName
{
[NotMapped]
private string PropertyName { get; }
}
API Fluido
public class Entities : DbContext
{
public DbSet<EntityType> Users { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// Some database configuration
modelBuilder.Entity<EntityType>()
.Ignore(i => i.PropertyName);
}
}
esta es una buena solución cuando desea agregar propiedades al objeto de entidad pero no las quiere asociadas a la base de datos o al archivo de asignación – mknopf
Usar el atributo [NoModificado] es la manera más fácil de hacerlo si tiene una propiedad que necesita en todas las entidades como EntityState que declaras en una clase base. No es necesario editar cada clase de configuración y recuerda hacerlo cada vez que se introduce una nueva entidad. –
Hola, gracias por tu respuesta. Pero cuando lo intento, aparece: "No admite el valor sin tipo en el tipo no abierto". ¿Qué estoy haciendo mal? – Toodoo
Estoy seriamente tarde para la conversación, pero también quiero marcar el parcial como serializable y la propiedad como serializable - si alguna vez planea JSON o serializar los objetos:
[Serializable()]
public partial class MyClass {
private System.Nullable<int> _Age;
[global::System.Runtime.Serialization.DataMemberAttribute(Order = 4)]
public System.Nullable<int> Age {
...
}
}
Se necesitan las directivas [Serializable()] y [global:]. Si excluía [global:], en cualquier momento que lo serializara, sería ignorado y no incluido en la serialización.
¡Excelente! Estuve dando vueltas durante tanto tiempo tratando de descubrir por qué solo una de las variables publicadas siempre era nula. Esto hizo el truco! ¡Gracias! – RobDigital
Esta página realmente me ayudó. Añadiré exactamente lo que agregué a mi configuración de mapeo después de ver la respuesta de Kniganapolke.
public TheObjectName()
{
this.HasKey(t => t.ID);
this.Ignore(t => t.IsProcess); //we don't want EF to worry about this
}
Gracias a todos, gracias SO!
- 1. Entidad framework: StoreGeneratedPattern = Propiedad "computada"
- 2. nHibernate HQL - entidad no está mapeada
- 3. Generación Entity Framework faltando una entidad
- 4. entidad framework web
- 5. Entidad framework PostgreSQL
- 6. Entity Framework no anulable se asigna a una anulable propiedad de entidad
- 7. Entidad Framework 4 Función Importación no funciona
- 8. Creando una expresión OrderBy Lambda basada en la propiedad de la entidad hijo
- 9. Entity Framework asigna múltiples tablas a una entidad
- 10. Marco de entidad, POCO y una propiedad privada
- 11. Error Entity Framework - Error 11009: Propiedad '' no está mapeada
- 12. Entidad Framework - Primera consulta lenta
- 13. ¿Cómo se actualiza automáticamente la propiedad modificada en una entidad en Entity Framework 4 al guardar?
- 14. ¿Cómo crear una entidad de solo lectura en Entity Framework?
- 15. Cómo agregar entidad existente como una nueva entidad con Entity Framework
- 16. Cómo persistir una entidad desde una subclase no-entidad en Hibernate
- 17. CreateSqlQuery en entidad con propiedad de fórmula
- 18. Entidad Framework 4.1 - Relaciones entre columnas no clave
- 19. GenericJDBCException: no se pudo cargar una entidad
- 20. mappedPor referencia una propiedad de entidad de destino desconocida
- 21. No se puede establecer el campo/propiedad en el tipo de entidad con Entity Framework 4.3.1
- 22. Entity Framework no realiza un seguimiento de los cambios en la recopilación al reconectar una entidad
- 23. Entidad separada y entidad administrada
- 24. C# Entidad FrameWork MySQL Cuentas lentas Count()
- 25. Entidad Framework 4 (Asociaciones configuradas con filtros)
- 26. javax.ejb.EJBException cuando persiste una entidad
- 27. Mostrar el cuadro de texto vacío utilizando Html.TextBoxFor en una propiedad no nula en una entidad de EF
- 28. Obtener una sola columna de una entidad
- 29. Entidad Marco: actualizar entidad o agregar si no existe
- 30. ¿Qué tiene nhibernate, esa entidad framework 4 no se encuentra?
Usar clases parciales es la forma correcta de hacerlo, y funciona bien para mí. Debe mostrar su código, sus asignaciones y el error exacto, ya que lo que ha descrito hasta ahora ya funciona. –