entity-framework - type - porque usar entity framework
El tipo de entidad<nombre_clase> no forma parte del modelo para el contexto actual (1)
DB tiene una tabla PackagingInfo
. Tengo una clase de Package
y un ShopEntities : DbContext
.
// Entity (ex. Package.cs)
[Table("PackagingInfo")]
public class Package
{
public decimal PackageID { get; set; }
public decimal Title { get; set; }
public decimal Cost { get; set; }
public bool isFree { get; set; }
}
// Entity Context (ex. ShopEntities.cs)
public class ShopEntities : DbContext
{
public DbSet<Package> Packages { get; set; }
}
// Controller Action (ex. HomeController.cs)
public ActionResult Index()
{
ShopEntities _db = new ShopEntities();
var q = _db.Packages.ToList();
return View(q);
}
Después de crear una instancia del contexto _db
e inspeccionar su propiedad de Packages
, se observa una excepción:
The entity type Package is not part of the model for the current context.
Actualizar
He editado esta pregunta y solicité su reapertura porque la situación también se está produciendo en un primer enfoque del Modelo donde la asignación de tablas se realiza en el archivo EDMX en lugar de la anotación notada aquí:
La ventana del Explorador de modelos muestra el Package
en bot, los tipos de entidad Modelo y Tienda, y la Asignación de tablas de la entidad muestra cada propiedad asignada correctamente a la columna de la tabla. Esta es la misma asignación realizada por el estilo de anotación primero en código.
Agregue explícitamente el atributo “DatabaseGenerated”
para establecer el valor de “identity”
de la columna en la base de datos
[DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.Identity)]
Especifique la precisión para el tipo de datos decimal. Esto se debe a que, de forma predeterminada, se supone que hay dos números después del decimal para el tipo de datos decimal. Necesitamos establecerlo en 0.
modelBuilder.Entity<User>().Property(x => x.ID).HasPrecision(16, 0);