簡體   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