我可以选择在 DAL 中使用实体SQL查询,或者在 db 中使用存储过程作为一种选择。
我应该使用哪一个。这两种方法的优点/缺点是什么?
我更倾向于 Entity SQL ,因为我不希望任何形式的 db 级别暴露我的逻辑。
答案 0 :(得分:1)
根据我的经验:
实体框架:
数据库SP
就个人而言,由于我上面提到的原因(以及我现在无法想到的其他一些原因),我也会选择EF。此外,如果有一些我无法做到或无法快速执行linq查询,我只会创建一个存储过程或只是执行一条SQL语句(是的,你可以使用上下文执行SQL)。
答案 1 :(得分:1)
如果您也是数据库管理员,请使用LINQ实体。 如果你把代码放在一起会更容易。
但是,如果您了解SQL(或其他人负责SQL Server性能),那么请使用存储过程。在不重新发布应用程序的情况下优化数据库操作要容易得多。
答案 2 :(得分:0)
两者都有自己的优点和缺点。
实体SQL从SQL注入攻击中是安全的,因为它始终参数化 但是如果你对SQL有足够的了解,你就会看到存储过程更加谨慎的情况。
您知道可以在实体框架中使用存储过程吗?
宁愿建议实体框架。在特定情况下使用存储过程存储过程更加优化。
答案 3 :(得分:0)
我只在以下情况下使用StoredProc: