|
|
1
16
你做的更新是对的。但是,在自动生成模型之后,可以对其进行自定义。当您进行更新时,EF设计器希望尝试并保留您可能进行的任何自定义。它必须对此进行猜测,但这并不总是正确的。我将尝试解释它是如何猜测的,因为这可能会帮助你。
另一方面,您“拥有”客户机模式。设计器将在第一次运行时为您生成客户机模式,并为新导入的数据库元数据对象(如新映射的表或列)生成客户机模式。但是一旦为对象生成了客户机模式,它通常不会被重新生成,因为设计器正试图保留您的自定义设置。因此,如果更改数据库会影响客户机架构,则必须手动更新客户机架构。您可以在GUI设计器中执行此操作,也可以在XML中手动执行。 在您的情况下,最简单的方法可能是在GUI设计器中选择导航并将其删除。这是假定数据库中的导航在关系的任何一边都不再有ID属性。 |
|
|
2
3
如果您使用的是一个尚未定制的实体模型,并且只需要将SQL数据库中的更改放到VS项目中,我发现删除实体模型并从相同的源重新生成它是最简单的。这样,EDMX的所有三个部分都将反映数据库中的内容。我以前使用过“从数据库更新模型”选项,然后编辑了XML/designer,发现在处理大型数据库时,这是一项既繁琐又耗时的工作。别误会,它100%工作,但它只是这么快,以保持您的模型新鲜的重建。即使以后确实需要编辑一些linqtosql查询,我发现编辑linqtosql查询比编辑EDMX模型更好。也就是说,我还不必这么做。重要提示:请确保使用与以前相同的设置重新创建模型,例如,如果以前创建模型时没有将对象名称多元化,请执行相同的操作。 |