2013-05-22 84 views
3

我想徵求意見。使用ADO.NET實體框架強制使用存儲過程

我現在正在開發一個使用C#,綁定,ADO.Net實體框架,ODP.net和Oracle數據庫的小型WPF客戶端應用程序。

該應用程序是一個小的,兩個XAML屏幕,大約15個表格。我正在通過應用程序填充實體並使用SaveChanges方法來開發實體。

但是,我們的DBA說我沒有權利直接訪問但只能使用存儲過程。我問他爲什麼,他說我這是一個安全原因,因爲在刪除一個表中的記錄時,使用存儲過程強制提供行標識符。

據他說,如果通過存儲過程提供id,應用程序可能會刪除一個表中的所有行而不是隻有一行。

我發現這只是15個表中的很多矯枉過正。

您對此有何看法?

+1

聽起來像他不知道*好*應用程序編程。 –

回答

1

你是否建議你的DBA使用Linq to SQL?這樣你就可以提取對象,代表單個行,並且它會使你不小心刪除多行成爲可能。

就我個人而言,我認爲EDM可能是DB的大小矯枉過正。

我應該說我是LINQ to SQL的堅定支持者,而不是然而,SP的大風扇....

0

LINQ2SQL在ODP.NET的頂部是一個偉大的堆棧。我同意Andrew的觀點,因爲您必須編寫代碼來加載記錄,刪除所有記錄並提交更改,但這並不是「容易」發生的事情。

忘記LINQ語句中的where子句並不容易或難以忘記存儲過程中的where子句。

相關問題