Rimuovere la colonna GUID generata automaticamente dalle pagine Aggiungi voce nell'applicazione Web Dynamic Data

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

Domanda

Ho un'applicazione Web Dynamic Data Entities che utilizza un database con GUID come chiavi primarie per le tabelle. Tutti i campi GUID hanno il valore predefinito impostato su NEWID (), quindi SQL Server genererà un nuovo GUID per qualsiasi record. Tuttavia, nel mio sito Web di dati dinamici, nelle pagine di inserimento di nuove voci viene visualizzato il campo GUID e l'utente deve inserire i dati. Come posso impedire la visualizzazione del campo?

È stato utile?

Soluzione

Secondo MSDN :

" Puoi nascondere la chiave primaria come qualsiasi altra colonna usando l'attributo Scaffold e impostando il suo valore su false. Poiché le chiavi generate automaticamente non vengono riconosciute, i modelli di pagina Inserisci predefiniti non funzionano con EDM per le tabelle che dispongono di chiavi primarie automatiche a meno che non si crei una classe parziale per l'entità e si applichi l'attributo Scaffold con un valore false. & Quot;

Inoltre, a parte è preferibile usare " newsequentialid () " per il valore predefinito di Guid se si utilizza SQL Server 2005 o versione successiva poiché è più efficiente per l'inserimento.

Altri suggerimenti

Non è la risposta giusta ..

Dopo aver fatto questo, cosa che ho fatto, puoi inserire 1 record che otterrà un GUID con tutti gli zero. Dopodiché non riceverai alcun messaggio di errore, ma non sarai in grado di inserire altri record, a causa del vincolo di indice univoco sulla guida (che ovviamente è una chiave primaria).

Per risolvere davvero questo problema, devi modificare il file emdx e aggiungere

StoreGeneratedPattern="Identity"

nel tag della proprietà Guid sotto il "contenuto SSDL" commento. Esempio:

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

Se lo fai nel designer all'interno di Visual Studio, annoterà il tag della proprietà sotto il "contenuto CSDL" commento che non funziona ..

Usato Entity Framework 4.0 Visual studio 10 e .NET framework 4.0

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top