2011-02-26 17 views
9

Tengo una tabla simple con un ID (un uniqueidentifier), un datetime, y un valor.Uso del GUID generado por la base de datos y la fecha y hora con EF4

Me gustaría utilizar getdate() en la base de datos para el tiempo de inserción de registros y newid() para la identificación. ¿Cómo configuro el marco de la entidad para hacer esto? Cuando trato de asignar el ID a la base de datos, obtengo:

Violation of PRIMARY KEY constraint 'PK_Random'. Cannot insert duplicate key in object 'dbo.Random'. The duplicate key value is (00000000-0000-0000-0000-000000000000). 

Respuesta

22

si primero está utilizando el código. Por favor agregue lo siguiente a su guía.

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public Guid guId { get; set; } 

Esto habilitará la generación de gui del lado del servidor sql. Espero eso ayude.

+3

Tenga en cuenta que esto requiere una referencia al espacio de nombres 'System.ComponentModel.DataAnnotations.Schema' – Crazometer

7

Solo para agregar a esto ya que la respuesta de @lunateck me ayudó. La otra manera (si está utilizando Database First) es:

  1. Abra su archivo edmx.
  2. Haga clic derecho -> Navegador de modelos
  3. Haga clic derecho en la columna Guid -> Propiedades -> cambie el StoreGeneratedPattern al Identity.
+0

Booya - que era la única. –

Cuestiones relacionadas