C# 切换是否会影响性能。内部存储过程?(实体框架)

C# 切换是否会影响性能。内部存储过程?(实体框架),c#,sql,sql-server,entity-framework,stored-procedures,C#,Sql,Sql Server,Entity Framework,Stored Procedures,我正在构建一个动态查询,并尝试使用sp\u executesql执行它。我使用EF(实体框架)作为我的ORM工具。正如我所读到的,entity framework首先将FMTONLY设置为OFF,然后仅为该sql过程请求元数据 我不知道在sql中使用set fmtonly的影响,如果仅在创建复杂类型时,我将fmtonly设置为ON,在EF中创建复杂类型后,我将再次将其设置为OFF。这样使用可以吗? 这会影响下一个过程调用的性能吗 如果我已经做了并且想要回滚,该怎么办 不要这样做。仅使用FMTON

我正在构建一个动态查询,并尝试使用sp\u executesql执行它。我使用EF(实体框架)作为我的ORM工具。正如我所读到的,entity framework首先将FMTONLY设置为OFF,然后仅为该sql过程请求元数据


我不知道在sql中使用set fmtonly的影响,如果仅在创建复杂类型时,我将fmtonly设置为ON,在EF中创建复杂类型后,我将再次将其设置为OFF。这样使用可以吗?

这会影响下一个过程调用的性能吗


如果我已经做了并且想要回滚,该怎么办

不要这样做。仅使用
FMTONLY
是一个充满问题的问题。因为当FMTONLY在一个过程中执行每个分支时,结果往往是意外的


因为在开发过程中,您确切地知道要调用什么过程以及预期的结果集是什么,所以在执行良好的开发周期中,永远不需要使用FMTONLY。EF这样做并不是一个好的做法。

如果我已经这样做了,想回滚怎么办。。?。。你能解释一下FMTONLY的作用吗?如果只在创建复杂类型时,我将FMTONLY设置为on,在EF中创建复杂类型后,我将再次将其设置为OFF。可以这样使用吗?
FMTONLY
用于接受任意SQL的工具,需要了解返回的结果集的形状(列的数量、类型和名称),而不需要实际执行SQL。除非您创建一个设计时SQL工具(例如EF本身,而不是基于EF的应用程序),否则您几乎不需要在代码中使用
FMTONLY