Eliminar la columna GUID autogenerada de las páginas Agregar entrada en la aplicación web de datos dinámicos

StackOverflow https://stackoverflow.com/questions/454235

Pregunta

Tengo una aplicación web de entidades de datos dinámicos que utiliza una base de datos con GUID como claves principales para las tablas. Todos los campos GUID tienen el valor predeterminado establecido en NEWID () para que SQL Server genere un nuevo GUID para cualquier registro. Sin embargo, en mi sitio web de datos dinámicos, en la inserción de nuevas páginas de entrada aparece el campo GUID y se espera que el usuario ingrese datos. ¿Cómo podría evitar que se muestre el campo?

¿Fue útil?

Solución

Según MSDN :

" Puede ocultar la clave primaria como lo hace con cualquier otra columna utilizando el atributo Scaffold y estableciendo su valor en falso. Como las claves generadas automáticamente no se reconocen, las plantillas de página Insertar predeterminadas no funcionan con EDM para las tablas que tienen claves primarias automáticas a menos que cree una clase parcial para la entidad y aplique el atributo Scaffold con un valor falso. & Quot;

Además, como aparte, es preferible usar " newsequentialid () " para el valor predeterminado de Guid si está utilizando SQL Server 2005 o superior, ya que es más eficiente para la inserción.

Otros consejos

No es la respuesta correcta ..

Después de hacer esto, lo cual hice, puede insertar 1 registro que obtendrá un GUID con todos los ceros. Después de eso, no recibirá ningún mensaje de error, pero no podrá insertar más registros, debido a la restricción de índice única en el guid (que es una clave principal, por supuesto).

Para resolver realmente este problema, debe editar el archivo emdx y agregar el

StoreGeneratedPattern="Identity"

en su etiqueta de propiedad Guid debajo del " contenido SSDL " comentario. Ejemplo:

   <Property Name="Guid" Type="uniqueidentifier" Nullable="false" StoreGeneratedPattern="Identity"/>

Si hace esto en el diseñador dentro de Visual Studio, anotará la etiqueta de propiedad debajo del " contenido CSDL " comentario que no funciona ...

Entity Framework 4.0 Visual Studio 10 y .NET Framework 4.0 usados ??

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top