当我更改存储过程时,我对DBML文件没有更新感到非常沮丧。
这就是发生的事情。我改变了我的存储过程。然后,我从.DBML文件中删除存储过程并重新添加它。它在.DBML文件中正确更新,但.designer.cs文件未更新。我找到的唯一解决方法是删除存储过程,然后删除存储过程返回的表,添加表然后添加存储过程(全部在.DBML文件中)。而这有时只会成功。
还有其他人有这个问题吗?当然有更适合在Visual Studio 2008中更新DBML文件的方法吗?
提前致谢
答案 0 :(得分:14)
更改SP时,DBML文件无法更新。
我建议你摆脱它。这就是我们在项目中遵循的内容。
每当SP中有更新时,无论是输入还是输出参数。将dbml文件编辑为xml文件(您只能在VS中使用open as xml)并保存dbml文件。这将自动更新designer.cs文件中的更改。这样您就不必从dbml中删除SP并重新添加它以获取更新。虽然这是手动过程,但它确实对你有很大帮助。
这样,您甚至可以修改从SP获得的输出的实体名称(以符合您的实体命名约定),因为这些默认名称与SP名称相同。
答案 1 :(得分:4)
我做的另一件事就是从视图中打开服务器资源管理器。它将列出数据库连接。右键单击指向数据库并刷新的特定连接。如果您添加了任何新的存储过程,或者您已更新任何存储过程,它将自动更新。
答案 2 :(得分:1)
1请记住,SQL和VS完全是2个独立的服务。它只是连接在一起,并不意味着它彼此同步。
2在我看来,DBML只是一种ms-sql。我用来创建DB Factory完全基于接口操作并返回数据作为DataTable ot DataSet。此代码可用于所有标准db。
答案 3 :(得分:0)
同样在实体框架6中,这是一个问题。 删除.edmx文件中的更改元素和"从数据库更新模型"。