У меня есть база данных, где у меня есть две таблицы. Первая таблица имеет один столбец, который является идентификатором и первичным ключом. Вторая таблица содержит два столбца. Один является первичным ключом varchar, а другой - внешним ключом Nullable для первой таблицы.
При добавлении таблиц в модель я получаю следующую ошибку проверки:
Условие не может быть указано для члена столбца «DetailsControlSetId», так как он помечен «Computed» или «Identity» StoreGeneratedPattern.
где 'DetailsControlSetId' - это вторая ссылка на внешний ключ во второй таблице.
Шаги для воспроизведения:
1) Создайте новый проект профиля клиента .Net 3.5 с помощью Visual Studio 2010 RC.
2) Запустите приведенные ниже сценарии для тестовой базы данных (пустая база данных подойдет).
3) Создайте модель EDMX, ориентируясь на созданную базу данных, но не импортируйте таблицы.
4) Обновить модель из базы данных, выбрав две таблицы в базе данных (DetailsControlSet и Application).
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