实体框架EDMX修改已删除



我遵循这里的指示:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/0ce70e04-0ba0-4819-8898-87243203adb9/

以支持映射到其中使用CROSS APPLY UDF的视图(基本上EF不能确定PK,所以当我试图将其添加到模型中时,它会对其进行注释)。

按照链接中的指示操作后,我可以成功地映射到视图并对其进行查询……但一旦我尝试U pdate Model from Database对架构进行新的更改,它就会删除我根据链接中的说明所做的修改(我在向导屏幕中看到它说要删除这些实体)。

请告诉我它不应该这样工作。。。。

简单的解决方法是为所有手动定义的实体单独使用EDMX。从数据库更新总是删除EDMX的SSDL部分(定义视图的位置)。

编辑:

另一种方法是修改视图代码,使其包含不可为null的(应该是唯一的,或者可能会出现其他问题)列——它应该自动推断为键。无论如何,强烈建议使用密钥的唯一性。

Visual Studio中内置的"从数据库更新模型"向导正是这样做的;它将替换模型的整个SSDL部分,覆盖您所做的任何自定义。

有一些第三方工具允许您对模型进行选择性更新,保留您可能对模型的其他部分进行的自定义,并允许您选择要在图层之间传播的更改。我的公司为Visual Studio制作了一个外接程序,为EF4设计器添加了该功能(以及一系列其他有用的功能)。这是一个介绍视频,展示了一些基本的同步功能:http://huagati.blogspot.com/2010/07/introducing-model-comparer-for-entity.html

最新更新