我有一個數據庫框架,我有兩個表。第一個表中有一列是一個標識和主鍵。第二個表格包含兩列。一個是varchar主鍵,另一個是第一個表的可空外鍵。實體框架不喜歡0..1到*關係
當添加表到模型中,我得到了以下驗證錯誤:
條件不能爲列成員「DetailsControlSetId」中指定,因爲它是標有「計算」或「身份」 StoreGeneratedPattern。
其中「DetailsControlSetId」是在所述第二表中的第二外鍵引用。
重現步驟:
1)創建與Visual Studio 2010 RC一個新的.NET 3.5客戶端配置文件的項目。
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
外鍵列是實際存儲生成的還是設計者錯誤地導入模型?另外,您正在使用哪個版本的Visual Studio? – Rory 2010-03-11 19:37:52
Duplicate:http://stackoverflow.com/questions/2410590/what-is-the-proper-way-to-create-a-recursive-entity-in-the-entity-framework @Orion,請回答問題I問你原來的問題,而不是重新發布同樣的事情。 – 2010-03-11 19:42:52
嗯,這個的重複:http://stackoverflow.com/questions/2382135/recursive-entity-causing-all-sorts-of-problems – 2010-03-11 19:43:34