Удалите автоматически созданный столбец GUID со страниц «Добавить запись» в веб-приложении с динамическими данными

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

Вопрос

У меня есть веб-приложение Dynamic Data Entities, которое использует базу данных с GUID в качестве первичных ключей для таблиц. Все поля GUID имеют значение по умолчанию, равное NEWID (), поэтому SQL Server сгенерирует новый GUID для любой записи. Однако на моем веб-сайте с динамическими данными на страницах вставки новых записей отображается поле GUID, и пользователь должен вводить данные. Как я могу предотвратить отображение поля?

Это было полезно?

Решение

Согласно MSDN :

" Вы можете скрыть первичный ключ, как и любой другой столбец, используя атрибут Scaffold и задав для его значения значение false. Поскольку автоматически сгенерированные ключи не распознаются, шаблоны страниц вставки по умолчанию не работают с EDM для таблиц с автоматическими первичными ключами, если только вы не создадите частичный класс для сущности и не примените атрибут Scaffold со значением false. & Quot;

Кроме того, кроме этого, предпочтительно использовать " newsequentialid () " для значения по умолчанию Guid, если вы используете SQL Server 2005 или выше, так как он более эффективен для вставки.

Другие советы

Не правильный ответ.

После этого, который я сделал, вы можете вставить 1 запись, которая получит GUID со всеми нулями. После этого вы вообще не получите сообщения об ошибке, но больше не сможете вставлять записи из-за уникального ограничения индекса на guid (который, конечно, является первичным ключом).

Чтобы действительно решить эту проблему, вы должны отредактировать файл emdx и добавить

StoreGeneratedPattern="Identity"

в тег свойства Guid в разделе " содержимое SSDL " комментарий. Пример:

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

Если вы сделаете это в дизайнере Visual Studio, он аннотирует тег свойства в " CSDL content " комментарий, который не работает ..

Используются Entity Framework 4.0 Visual Studio 10 и .NET Framework 4.0

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top