LINQ和存储过程DBML更新问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINQ和存储过程DBML更新问题相关的知识,希望对你有一定的参考价值。

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

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

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

提前致谢

答案

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

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

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

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

另一答案

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

另一答案

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

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

另一答案

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

以上是关于LINQ和存储过程DBML更新问题的主要内容,如果未能解决你的问题,请参考以下文章

Linq to Sql vs Nhibernate vs SubSonic vs 存储过程(帮助)

使用带有输出参数的 LINQ 和存储过程丢失小数精度和比例

如何在带有 Select 语句的存储过程上使用 LINQ?

Linq 存储过程超时但 SSMS 快速

如何使用存储过程在 LINQ to SQL 中使用事务?

如何在带有 LINQ to SQL 的存储过程中使用临时表