繁体   English   中英

如何在EF4中为SELECT调用存储过程以填充EntityDataSource

[英]How to call a stored Procedure for SELECT in EF4 to populate an EntityDataSource

我试图调查EF4在我的项目中的使用,但遇到了这个“有趣”的问题。

创建edmx时,有一种简单的方法可以将实体连接到通过EntityDataSource的用户界面组件(例如,DevExpress GridView)。

问题: 您认为将实体绑定到控件有更好的方法吗?

现在,作为客户端规范,我很乐意通过限制EF功能的存储过程(用于更新,插入,选择,删除)与数据库进行交互,但是仍然可以给我带来一些好处。

问题: 有没有办法使用选择存储过程来完成插入/更新/删除并继续使用EntityDataSource?

问题: 您认为用数据库视图填充实体以引导选择并以其他方式使用存储过程映射是一种合理的解决方案吗?

感谢您的帮助和想法。

第一个问题有些悬而未决,而是取决于您使用的控件以及您要遵循的设计模式(如果有)。 从开发的角度来看,如果您正在进行单元测试,则应始终考虑关注点的分离,以及将控件绑定到“域”的紧密程度。 这是一个ASP.NET应用程序吗?

第二个问题很常见,尤其是在您存在安全性问题和严重的DBA(!)的企业方案中。 您可以实现选择的存储过程。 我建议阅读这里找到的帖子。

关于第三个问题,同样可以在实体框架中使用视图。 有几篇文章和陷阱,我当然也要先阅读这篇文章

2和3确实可以满足客户的要求。 在我当前的项目中,我们使用存储过程来创建,更新和删除操作,同时允许根据需要直接选择对表的访问。 这是有效的,因为它允许您在动态查询方面使用EF和LINQ的本机功能。 同样,这符合我们的要求,但可能不符合您的要求!

编辑

我只想提供更多有关您的最后评论的链接,因为它们与EntityDataSource的关系更加明确。 有关SO的文章在这里 ,并且链接到这里的不错的文章,这对您有帮助。

编辑

另一种选择是添加定义查询以控制EF如何执行选择。 这里

缺口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM