Linq关于存储过程

Ada*_*ith 6 .net linq database stored-procedures

使用linq对存储过程有什么优缺点?

Sco*_*vey 10

既然没有人添加CON - 我会在这里建议一个......

Stored Procs使您能够拒绝基表和视图上的选择/插入/删除/更新,因此您可以使用存储过程获得更好的安全性,就像使用Linq to SQL一样.通过仅在您的触发器上授予exec权限,您可以使用较小的表面区域来管理安全性.

当然 - 您仍然可以将Linq用于SQL并将存储过程一起使用 - 也许这将是更好的选择.


Psy*_*der 5

LINQ是.Net Framework的一个很好的补充,然而它确实有它的局限性.到目前为止,LINQ尚未支持所有SQL语法(尽管我确信他们正在研究它).此外,使用LINQ没有干净的方法让它处理多个表并只提供我们需要的数据.使用LINQ,您必须检索所有数据,然后保留您想要的内容并将其余部分丢弃,从而传输比实际需要更多的数据,这是性能问题.

如果您正在做的只是简单的INSERT,UPDATE和DELETE语句LINQ是可行的方式(在我看来)并且所有优化都是为您完成的,对于更复杂的工作,我会坚持使用存储过程.

  • 实际上,由于查询执行被推迟,只要您不在中间执行类似ToArray的操作,它就会正确处理连接并让DB执行它最擅长的操作.如果你在谈论行宽,你总是可以使用匿名对象,它会做出正确的选择. (2认同)