强制使用ADO存储过程.. NET实体框架
本文关键字:NET 实体 框架 存储过程 ADO | 更新日期: 2023-09-27 18:14:44
我想听听你的建议。
我现在正在开发一个小的WPF客户端应用程序使用c#,绑定,ADO。. Net实体框架,ODP.net和Oracle数据库。
应用程序很小,只有两个XAML屏幕,大约15个表。我通过在应用程序中填充我的实体并使用SaveChanges方法来开发使用实体。
然而,我们的DBA告诉我,我没有权利直接访问数据库,只能使用存储过程。我问他为什么,他告诉我这是一个安全原因,因为使用存储过程在删除一个表中的记录时强制提供行标识符。
根据他的说法,如果通过存储过程提供id,那么应用程序可能会删除一个表中的所有行,而不是只删除一行。
我发现这对只有15张桌子的人来说太过分了。
你觉得怎么样?
您是否建议您的DBA使用Linq to SQL?通过这种方式,您可以提取对象,表示单个行,这将大大降低意外删除多行的可能性。
我个人认为EDM对于DB的大小来说可能是多余的。
我应该说我是LINQ to SQL的大支持者,而不是sp的大粉丝....
LINQ2SQL在ODP之上。. NET是一个很棒的堆栈。我同意Andrew的观点,因为你必须编写代码来加载记录,删除所有记录,并提交更改,这并不是"容易"发生的事情。
在LINQ语句中忘记where子句并不比在存储过程中忘记where子句容易或困难。