Entity Framework Code First - Não é possível inserir chave duplicada no objeto 'db'
Estou usando o novo código EF primeiro em um projeto meu e estou recebendo um erro estranho, meu modo é:
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;}
}
O resultado da implantação no SQL Server está ok, eu tenho uma Tabela de Membros e uma Tabela de Usuários (TPC). Agora, no meu principal, tenho o seguinte 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();
}
}
Ao salvar as alterações, recebo:
"Exceção não tratada: System.Data.Entity.Infrastructure.DbUpdateException: ocorreu um erro ao atualizar as entradas. Consulte a exceção interna para detalhes. ---> System.Data.UpdateException: ocorreu um erro ao atualizar as entradas. Consulte a exceção interna para obter detalhes. ---> System.Data.SqlClient .SqlException: violação da restrição PRIMARY KEY 'PK_Comercia _0CF04B1821B6055D '. Não é possível inserir chave duplicada no objeto 'dbo.Users'. "
O MemberId por padrão é identidade, então eu simplesmente não vejo o que está acontecendo aqui. Eu tentei criar as instâncias com o novo e anexá-los ao contexto, mas o erro foi o mesmo, alguma idéia? O banco de dados está vazio!
Obrigado
EDIT: Esqueci de dizer que o Membro é uma classe abstrata, desculpe por iss