我有一个数据库框架,我有两个表。第一个表中有一列是一个标识和主键。第二个表格包含两列。一个是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