任何人都可以帮我解决如何在EF6中禁用DELETE选项的问题吗?
我的意思是从应用程序,现在应该删除记录(甚至意外)
感谢。
答案 0 :(得分:1)
在数据库中创建一个用户/角色,该用户/角色无权删除/修改记录并在您的应用程序中使用它。 EF本身并不是一个安全工具,并且总是有执行删除操作的选项(例如,开发人员可以绕过数据访问层中实现的所有'安全'措施向数据库发送任意SQL查询/命令)< / p>
答案 1 :(得分:0)
使用AsNoTracking()
选项获取实体调用时。
例如: - Context.Users.AsNoTracking()
史蒂文斯评论后的编辑
确实,任何人都可以将实体状态更改为手动删除。我建议使用Repository Pattern
进行数据访问,并限制删除操作。通过将DbContext隐藏在程序集之外。