Modificado He seguido algunos ejemplos (incluidos libros como "Pro ASP.NET MVC 3" y "ASP profesional"). .NET MVC 3 ") para crear aplicaciones simples ASP.NET MVC 3 utilizando EF 4.1 (ya que soy nuevo en estas tecnologías)."Se lanza un objeto con la misma clave en la excepción ObjectStateManager ..." al establecer un estado de entidad en
estoy usando el siguiente repositorio (única instancia de que es utilizado por todos los métodos de acción del controlador) para acceder a la DB:
public class ProductRepository : IProductRepository
{
private readonly EFDbContext _context = new EFDbContext();
#region Implementation of IProductRepository
....
public void SaveProduct(Product product)
{
if (product.ProductId == 0)
{
_context.Products.Add(product);
}
else
{
_context.Entry(product).State = EntityState.Modified;
}
_context.SaveChanges();
}
....
}
Este repositorio realiza la actualización como se demostró en los ejemplos Solía.
clase de producto:
public class Product
{
public int ProductId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}
En caso de actualizar el producto, me estoy poniendo la excepción "Un objeto con la misma clave ya existe en la ObjectStateManager El ObjectStateManager no puede realizar un seguimiento de múltiples objetos con el mismo. tecla"
sé que las preguntas similares han sido ya discutidos aquí, pero mi pregunta es un poco diferente:
Por qué este código que fue tomado de exampl es no funciona (aunque parece bastante simple y directo)? ¿Qué mal podría haber hecho o perdido algo?
estoy teniendo el mismo error utilizando el andamiaje predeterminado que Visual Studio prepara para usted y que no han podido para averiguarlo. –