ダイナミックデータWebアプリケーションのエントリの追加ページから自動生成GUID列を削除します

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

質問

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

役に立ちましたか?

解決

MSDN によると:

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

また、余談ですが、<!> quot; newsequentialid()<!> quot;を使用することをお勧めします。 SQL Server 2005以降を使用している場合、挿入の方が効率的であるため、Guidのデフォルト値になります。

他のヒント

正しい回答ではありません。

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

この問題を本当に解決するには、emdxファイルを編集して追加する必要があります

StoreGeneratedPattern="Identity"

<!> quot; SSDL content <!> quot;の下のGuidプロパティタグに。コメント。例:

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

ビジュアルスタジオ内のデザイナーでこれを行うと、<!> quot; CSDL content <!> quot;の下のプロパティタグに注釈が付けられます。機能しないコメント..

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top