У меня есть база данных, где у меня есть две таблицы. Первая таблица имеет один столбец, который является идентификационным и первичным ключом. Вторая таблица содержит два столбца. Один из них - первичный ключ varchar, а другой - нулевой внешний ключ для первой таблицы.Entity Framework не любит отношения 0..1 к *
При добавлении таблицы в модели я получаю следующее сообщение об ошибке проверки:
Состояние не может быть указан для элемента столбца «DetailsControlSetId», потому что он помечен «Вычисленный» или StoreGeneratedPattern «идентичности».
где «DetailsControlSetId» - это вторая ссылка внешнего ключа во второй таблице.
Шаги для воспроизведения:
1) Создание нового .Net 3.5 Client Profile проект с Visual Studio 2010 RC.
2) Запустите скрипты ниже тестовой базы данных (пустая база данных будет делать).
3) Создайте модель EDMX, ориентируясь на созданную базу данных, но не хотите импортировать какие-либо таблицы.
4) Обновить модель из базы данных, выбрав две таблицы в базе данных (DetailsControlSet и приложение).
5) Подтвердите модель EDMX.
Сценарии для создания таблицы:
CREATE TABLE [dbo].[DetailsControlSet](
[DetailsControlSetId] [int] IDENTITY(1,1) NOT NULL,
CONSTRAINT [PK_DetailsControlSet] PRIMARY KEY CLUSTERED
(
[DetailsControlSetId] ASC
)
)
GO
CREATE TABLE [dbo].[Application](
[ApplicationName] [varchar](50) NOT NULL,
[DetailsControlSetId] [int] NULL,
CONSTRAINT [PK_Application] PRIMARY KEY CLUSTERED
(
[ApplicationName] ASC
)
)
GO
ALTER TABLE [dbo].[Application] WITH CHECK ADD CONSTRAINT [FK_Application_DetailsControlSet] FOREIGN KEY([DetailsControlSetId])
REFERENCES [dbo].[DetailsControlSet] ([DetailsControlSetId])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[Application] CHECK CONSTRAINT [FK_Application_DetailsControlSet]
GO
Является ли столбец внешнего ключа фактическим сгенерированным магазином или является конструктором, импортирующим модель неправильно? Кроме того, какую версию Visual Studio вы используете? – Rory
Дубликат: http: // stackoverflow.com/questions/2410590/what-is-the-proper-way-to-create-a-recursive-entity-in-entity-framework @Orion, пожалуйста, ответьте на вопрос, который я задал по вашему первоначальному вопросу, вместо того, чтобы перепрограммировать то же самое. –
Хммм, дубликат этого тоже: http://stackoverflow.com/questions/2382135/recursive-entity-causing-all-sorts-of-problems –