3

テーブルの主キーとしてGUIDを使用するデータベースを使用する動的データエンティティWebアプリケーションがあります。すべてのGUIDフィールドのデフォルト値はNEWID()に設定されているため、SQLServerはすべてのレコードに対して新しいGUIDを生成します。ただし、私の動的データWebサイトでは、新しいエントリの挿入ページにGUIDフィールドが表示され、ユーザーがデータを入力することが期待されています。フィールドが表示されないようにするにはどうすればよいですか?

4

2 に答える 2

3

MSDNによると:

「Scaffold 属性を使用してその値を false に設定することにより、他の列と同じように主キーを非表示にすることができます。自動的に生成されたキーは認識されないため、デフォルトの挿入ページ テンプレートは、自動主キーを持つテーブルの EDM では機能しません。エンティティの部分クラスを作成し、Scaffold 属性に false の値を適用しない限り、."

また、余談ですが、SQL Server 2005 以降を使用している場合は、Guid の既定値に "newsequentialid()" を使用することをお勧めします。これは、挿入がより効率的であるためです。

于 2009-01-17T23:45:58.763 に答える
3

正しい答えではありません..

私が行ったこれを行った後、すべてゼロの GUID を取得する 1 つのレコードを挿入できます。その後、エラー メッセージはまったく表示されませんが、GUID (もちろん主キー) の一意のインデックス制約のため、それ以上レコードを挿入することはできません。

この問題を本当に解決するには、emdx ファイルを編集して、

StoreGeneratedPattern="Identity"

「SSDLコンテンツ」コメントの下のGuidプロパティタグに。例:

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

ビジュアルスタジオ内のデザイナーでこれを行うと、「CSDLコンテンツ」コメントの下のプロパティタグに注釈が付けられますが、機能しません..

Entity Framework 4.0 Visual studio 10 および .NET Framework 4.0 を使用

于 2011-03-10T16:46:12.593 に答える