Para mi clave principal e identidad en nuestra tabla Clientes, utilizo la columna uniqueidentifier
con un valor predeterminado establecido en newsequentialid(). Al insertar nuevas filas a través de la herramienta de administración, se crean los valores para la multa de ID.Uso del tipo de columna SQL de identificador único con el marco Entidad
Insertar desde el código .NET 4 a través de los resultados de EF en cero GUID (00000-0000 ....) insertados. Creo la entidad con nuevo, establezco algunos valores y realizo EF AddToClients
(por ejemplo). Si se depura, el valor de la propiedad de id. Muestra cero GUID. No establezco explícitamente la identificación a través de Guid.NewGuid()
en mi código porque quiero dejarlo en el newsequentialid()
en SQL Server. El problema es que no funciona. La primera vez que se ejecuta el código, la fila se inserta con cero GUID. La próxima vez, obviamente, falla y genera una excepción de violación de clave principal.
¿Cómo puedo hacer que esto funcione sin tener que configurar el GUID en mi código de cliente?
lo hizo. Ningún cambio. La entidad todavía tiene configurado ZERO GUID antes de la inserción y la inserción falla con la clave duplicada (dejé la que estaba previamente insertada en la tabla). – mare
ohh veo sobre los problemas del diseñador ... esto es simplemente genial. En la parte superior de otro problema que escribí sobre en otra pregunta, ahora esto. Gracias por la respuesta sin embargo. – mare
@mare: Siento tu dolor.EF es una herramienta poderosa, pero cuando encuentras algo que no maneja * bien *, puede ser un gran dolor de cabeza para evitarlo. –