EF6.0不会创建关联VS2013 Legacy 2008R2数据库优先

时间:2014-02-22 13:58:28

标签: entity-framework ef-database-first

在VSS2013中使用MVC5创建与EF6.0连接的数据库。之前该模型已经使用EF5.0,MVC3和VSS2010创建。

使用MS SQL Express对现有表上的数据库进行了更改 - 在指向主父记录的子表上添加了一些外部整数键,并创建了一个手动输入的测试数据记录集以进行测试。添加了一些额外的属性。一些新的不相关的表格。

“从数据库更新模型”获取了表格更改,但拒绝接受这些FK关联。所有导航都丢失了。

模型已删除,在EF6.0中重新创建。 EDMX文件再次获取所有表和较旧的FK关联。新的只是被忽略了。

这里没有必要添加表作为示例,这是使用整数的简单父子FK内容。脚本SQL显示旧的和新的FK约束是可比较的。我放弃了模型并重新创建了几次,使用不同的ConnectionStrings,名称在发生混乱时发生变化。没有快乐。

我完全不知道为什么它可以拿起一些,而不是其他人。我需要一些“陷阱”的线索。任何人吗?

EF6.0.0 MVC5.1 .NET4.5

更新:非功能性FK示例

ALTER TABLE [dbo]。[Cli_Address]     ADD CONSTRAINT [FK_Cli_Address_WebUserProfileX] FOREIGN KEY([UserProfileFK])REFERENCES [dbo]。[WebUserProfile]([UserID]);

1 个答案:

答案 0 :(得分:3)

你被这个击中了:

http://social.msdn.microsoft.com/Forums/en-US/0ba27be1-d252-44c0-8e0b-7f129b578a2b/missing-navigation-properties-on-entity?forum=adodotnetentityframework

由此不需要的索引引起:

在[dbo]上创建独特的非集群索引[IX_WebProfile]。[WebUserProfile] (  [UserID] ASC )WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,SORT_IN_TEMPDB = OFF,IGNORE_DUP_KEY = OFF,DROP_EXISTING = OFF,ONLINE = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY] GO

删除索引,一切正常

(我认为你必须删除并重新创建fks才能删除索引)

更新:我已修复此问题,因此此方案不再中断,请参阅https://entityframework.codeplex.com/workitem/667