Frage

Ich habe eine Dynamic Data Entities Web-Anwendung, die eine Datenbank mit GUIDs als Primärschlüssel für Tabellen verwendet. Alle der GUID-Felder haben den Standardwert auf NEWID () gesetzt, so SQL Server eine neue GUID für jeden Datensatz generiert. Doch in meiner dynamischen Daten Website, in den Einsatz neuer Eintrag Seiten der GUID-Feld zeigt und es ist für den Benutzer erwarteten Daten einzugeben. Wie kann ich verhindern, dass das Feld angezeigt wird?

War es hilfreich?

Lösung

Nach MSDN :

"Sie können den Primärschlüssel verstecken wie jede andere Spalte tun, indem Sie das Scaffold-Attribut und seinen Wert auf false setzen. Da automatisch generierte Schlüssel nicht erkannt werden, die Standard-Insert Seitenvorlagen mit EDM nicht für Tabellen arbeiten, die haben automatische Primärschlüssel, wenn Sie eine partielle Klasse für das Unternehmen erstellen und das Scaffold Attributs mit einem Wert von falscher Anwendung. "

Auch als Nebenbei bemerkt ist es vorzuziehen „NEWSEQUENTIALID ()“ für den Standardwert von Guid zu verwenden, wenn Sie SQL Server 2005 verwenden oder höher, da es effizienter ist zum Einfügen.

Andere Tipps

Nicht die richtige Antwort ..

Nachdem Sie das getan, was ich auch tat, können Sie 1 Datensatz einfügen, die eine GUID mit allen Nullen bekommen. Danach werden Sie überhaupt keine Fehlermeldung, aber Sie werden nicht in der Lage noch mehr Datensätze einzufügen, wegen der eindeutigen Index-Einschränkung für die GUID (das ist ein Primärschlüssel natürlich ist).

Um wirklich dieses Problem zu lösen, haben Sie die emdx Datei bearbeiten und fügen Sie die

StoreGeneratedPattern="Identity"

in Ihren Guid Eigenschaftstag unter dem „SSDL Inhalt“ Kommentar. Beispiel:

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

Wenn yhou dies tut, in dem Designer in Visual Studio wird es die Eigenschaft Tag unter dem „CSDL Inhalt“ Kommentar mit Anmerkungen versehen, die nicht funktionieren ..

Gebrauchte Entity Framework 4.0 von Visual Studio 10 und .NET Framework 4.0

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top