entity framework 4 - usando Guid como PK con el código EF4 primero
entity-framework-4 code-first (2)
¿Ha configurado Identity StoreGeneratedPattern?
Puedes hacerlo en el método OnModelCreating
:
modelBuilder.Entity<Foo>().Property(o => o.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
o utilizando los atributos de DataAnnotation:
public class Foo {
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id {get;set;}
public string Name {get;set;}
}
Tengo esta clase y mesa:
public class Foo
{
public Guid Id {get;set;}
public string Name {get;set;}
}
create table Foo
(
id uniqueidentifier primary KEY DEFAULT (newsequentialid()),
name nvarchar(255)
)
el problema es que cuando intento guardar el nuevo foo, el primero va con el ID 000-00 ... id y el segundo también, así que obtengo la excepción de restricción
Alguien sabe una solución?
Simplemente construyendo sobre la Solución de Devart, tuve este problema y usé el
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
La anotación de datos no funcionó. La razón de esto fue que estaba usando (como se sugiere en uno de los primeros tutoriales de código) una base de datos SqlServerCompact que no admite la identidad de Guid. Solo pensé que publicaría aquí en caso de que alguien más tuviera este problema. Si cambia la cadena de conexión para que esté creando un mdf SqlServer en lugar de una base de datos compacta, funciona perfectamente.