0

Я использую EF 5 и SQL Server 2005, Model First (сорт).Entity Framework генерирует схему базы данных (SQL) с значениями таблицы по умолчанию

Как бы то ни было, я обычно строю свою схему в дизайнере SQL Server, но импортирую схему в EF, поэтому у меня есть визуальный вид. Часто бывает круговое отключение.

Однако я заметил, что когда я пытаюсь создать схему БД на основе модели EF, она пропускает все значения по умолчанию NEWID(), которые я присвоил значениям по умолчанию моим идентификаторам Guid, но это не пропустите поля идентификации типа int.

Я нашел этот пост, объясняя рассуждение для этого: Entity Framework 4 and Default Values

Однако, он не отвечает на мой вопрос: Как я могу получить Entity Framework для создания схемы базы данных SQL DDL со значениями по умолчанию NEWID() для моих уникальных типов идентификаторов?

Примечание:

Я не забочусь о том, как установить их от сущностей POCO и так далее (есть много сообщений, описывающих, что) - моя забота заключается в получении SQL DDL генерируется право, так что я могу семя база данных, не беспокоясь о том, что эти значения отсутствуют.

ответ

2

Используя миграции объектов Entity Framework, вы можете использовать параметр GUID column builder и его параметр DefaultValueSql. Значение этого параметра может быть строкой "NEWID()". Это должно заботиться о надлежащей генерации DDL.

Далее вы должны объявить эти свойства в виде базы данных с использованием атрибутов или свободного модельного построителя, чтобы EF игнорировал значения, установленные в ваших POCOs (которые будут пустыми для новых объектов).

+0

Спасибо. Перенос фреймворка Entity для кода сначала, поэтому я не уверен, поможет ли он любому, кто сталкивается с этим вопросом. В конце концов, я перешел на код сначала несколько месяцев назад, а совсем недавно, чтобы кодировать первые миграции. +1 для ваших усилий, но примите только ответ, который для модели сначала будет правильным. – NightOwl888

+0

Вы правы, мы переключились так давно, что даже не поняли. Ну что ж ;). – tne

Смежные вопросы