LINQ和存储过程DBML更新问题

问题描述 投票:9回答:4

当我改变我的存储过程时,我对DBML文件没有更新感到非常沮丧。

这就是发生的事情。我改变了我的存储过程。然后,我从.DBML文件中删除存储过程并重新添加它。它在.DBML文件中正确更新,但.designer.cs文件未更新。我找到的唯一解决方法是删除存储过程,然后删除存储过程返回的表,添加表然后添加存储过程(全部在.DBML文件中)。而这有时只会成功。

有没有其他人有这个问题?当然有更合适的方法来更新Visual Studio 2008中的DBML文件?

提前致谢

visual-studio linq-to-sql
4个回答
14
投票

更改SP时,DBML文件无法更新。

我建议你摆脱它。这就是我们在项目中遵循的内容。

每当您在SP中更新时,无论是输入还是输出参数。将dbml文件编辑为xml文件(您只能在VS中使用open as xml)并保存dbml文件。这将自动更新designer.cs文件中的更改。这样您就不必从dbml中删除SP并重新添加它以获取更新。虽然这是手动过程,但它确实对您有很大帮助。

这样,您甚至可以修改从SP获得的输出的实体名称(以符合您的实体命名约定),因为这些默认名称与SP名称相同。


4
投票

我做的还有一件事,从视图中打开服务器资源管理器。它将列出数据库连接。右键单击指向数据库并刷新的特定连接。如果您添加了任何新的存储过程,或者您已更新任何存储过程,它将自动更新。


1
投票

1请记住,SQL和VS完全是2个独立的服务。它只是连接在一起,并不意味着它彼此同步。

2在我看来,DBML只是一种ms-sql。我用来创建DB Factory完全基于接口操作并返回数据作为DataTable ot DataSet。此代码可用于所有标准db。


0
投票

同样在实体框架6中,这是一个问题。删除.edmx文件中的更改元素和“从数据库更新模型”。

© www.soinside.com 2019 - 2024. All rights reserved.