如何在EF4中为SELECT调用存储过程以填充EntityDataSource
本文关键字:存储过程 填充 EntityDataSource 调用 SELECT EF4 中为 | 更新日期: 2023-09-27 18:19:53
我试图研究EF4在我的项目中的使用,但我遇到了这个"有趣"的问题。
在创建edmx时,有一种简单的方法可以将实体连接到通过EntityDataSource的用户界面组件(例如DevExpressGridView)。
问题: 您认为有更好的方法将我的实体绑定到控件吗
现在,作为一个客户端规范,我很乐意通过存储过程(用于更新、插入、选择、删除)与数据库进行交互,从而限制EF的功能,但它仍然会给我带来一些好处。
问题: 是否有一种方法可以像插入/更新/删除那样使用select存储过程并继续使用EntityDataSource
问题: 您认为用数据库视图填充实体以引导选择并使用存储过程映射是合理的解决方案吗
感谢您的帮助和想法。
第一个问题在nautre中有点开放,取决于您正在使用的控件和您试图遵循的设计模式(如果有的话)。从开发的角度来看,如果您是单元测试,您应该始终考虑关注点的分离,以及您希望将控件与"域"绑定的紧密程度。这是ASP.NET应用程序吗?
第二个问题很常见,尤其是在存在安全问题和严重DBA(!)的企业场景中。您可以执行选择存储过程。我建议阅读这里的帖子。
至于第三个问题,同样可以使用实体框架中的视图。有几篇文章和陷阱,我当然也会先看看这篇文章。
2和3实际上可以归结为客户的要求。在我目前的项目中,我们使用存储过程进行创建、更新和删除操作,同时允许在必要时直接选择访问我们的表。这是有效的,因为它允许您在动态查询方面使用EF和LINQ的原生功能。同样,这符合我们的要求,但可能不适合您的要求!
编辑:
我只是想提供更多关于您上次评论的链接,因为它们更明确地处理EntityDataSource。相关的SO文章在这里,它链接到这里的一篇不错的文章,应该会对你有所帮助。
编辑:
还有一个选项是添加一个定义查询来控制EF如何执行选择。请参见此处。
尼克。