Entity Framework Code First: no se puede insertar una clave duplicada en el objeto 'db'
Estoy usando el nuevo código EF primero para un proyecto mío, y recibo un error extraño, mi modo es:
abstract class Member
{
public virtual int MemberId;
... some other stuff
}
class User : Member
{
public virtual string Name;
... some more props no new key defined
}
class MyDbContext
{
public DbSet<User> Users {get;set;}
}
El resultado de la implementación en SQL Server es correcto, tengo una tabla de miembros y una tabla de usuarios (TPC). Ahora en mi principal tengo el siguiente código:
static Main()
{
User x,y;
using(MyDbContext ctx = new MyDbContext())
{
x = ctx.Users.Create();
y = ctx.Users.Create();
x.Name = "SomeUser";
y.Name = "SomeUser2";
ctx.SaveChanges();
}
}
Al guardar los cambios que obtengo:
"Excepción no controlada: System.Data.Entity.Infrastructure.DbUpdateException: se produjo un error al actualizar las entradas. Consulte la excepción interna para detalles. ---> System.Data.UpdateException: se produjo un error al actualizar las entradas. Consulte la excepción interna para detalles. ---> System.Data.SqlClient .SqlException: Infracción de la restricción PRIMARY KEY 'PK_ Usuarios _0CF04B1821B6055D '. No se puede insertar una clave duplicada en el objeto 'dbo.Users'. "
El MemberId por defecto es identidad, así que simplemente no veo lo que está sucediendo aquí. He intentado crear las instancias con nuevas y adjuntarlas al contexto, pero el error fue el mismo, ¿alguna idea? ¡La base de datos está vacía!
Gracias
EDIT: Olvidé decir que el Miembro es una clase abstracta, lo siento por eso.