UpdateModelFromDatabaseException при попытке добавить таблицу в модель Entity Framework - PullRequest
0 голосов
/ 15 марта 2010

Я столкнулся со странной проблемой с Entity Framework в .NET 3.5 SP1 в Visual Studio 2008. Я создал базу данных с несколькими таблицами в SQL Server, а затем создал связанную модель .edmx Entity Framework, и у меня не было проблем. Затем я создал новую таблицу в базе данных, которая имеет внешний ключ к существующей таблице и должна быть добавлена ​​в .edmx. Поэтому я открыл .edmx в Visual Studio и в моделях щелкнул правой кнопкой мыши и выбрал «Обновить модель из базы данных ...». Я увидел новую таблицу на вкладке «Добавить», поэтому я проверил ее и нажал «Готово». Однако я получаю сообщение об ошибке со следующим текстом:

---------------------------
Microsoft Visual Studio
---------------------------
An exception of type 'Microsoft.Data.Entity.Design.Model.Commands.UpdateModelFromDatabaseException' occurred while attempting to update from the database. The exception message is: 'Cannot update from the database. Cannot resolve the Name Target for ScalarProperty 'ID <==> CustomerID'.'.
---------------------------
OK   
---------------------------

Для справки, вот таблицы, кажется, наиболее подходящие для ошибки. CustomerPreferences уже существует в .edmx. Diets - это таблица, которая была добавлена ​​впоследствии и пытается добавить в .edmx.

CREATE TABLE [dbo].[CustomerPreferences](
    [ID] [uniqueidentifier] NOT NULL,
    [LastUpdatedTime] [datetime] NOT NULL,
    [LastUpdatedBy] [uniqueidentifier] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]


CREATE TABLE [dbo].[Diets](
    [ID] [uniqueidentifier] NOT NULL,
    [CustomerID] [uniqueidentifier] NOT NULL,
    [Description] [nvarchar](50) NOT NULL,
    [LastUpdatedTime] [datetime] NOT NULL,
    [LastUpdatedBy] [uniqueidentifier] NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Diets]  WITH CHECK ADD  CONSTRAINT [FK_Diets_CustomerPreferences] FOREIGN KEY([CustomerID])
REFERENCES [dbo].[CustomerPreferences] ([ID])
GO

ALTER TABLE [dbo].[Diets] CHECK CONSTRAINT [FK_Diets_CustomerPreferences]
GO

Это похоже на довольно распространенный вариант использования, поэтому я не уверен, где я ошибаюсь.

1 Ответ

2 голосов
/ 26 мая 2010

Проблема заключалась в попытке поместить объекты в пространство имен Entities. Очевидно, это зарезервированное ключевое слово, которое конфликтует с инструментами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...