【问题标题】:Creating entities from stored procedures which have dynamic sql从具有动态 sql 的存储过程创建实体
【发布时间】:2010-08-27 12:08:34
【问题描述】:

我有一个存储过程,它使用几个表并创建一个交叉表结果集。为了创建交叉表结果集,我使用了根据表中的记录动态生成的 CASE 语句。

是否可以使用 ADO.NET 实体框架从此 SP 生成实体?因为每次我为特定的 SP 尝试 Get Column Information 时,它都会显示 The selected stored procedure returns no columns

任何帮助将不胜感激。

【问题讨论】:

    标签: sql entity-framework stored-procedures ado.net


    【解决方案1】:

    我团队的一个成员最近遇到了类似的情况,其中存储过程生成各种动态 SQL 并返回计算列,因此数据上下文不知道该怎么做。我自己还没有尝试过,但这是他声称的解决方案:

    解决办法就是把这条线 “关闭 FMTONLY;”进入过程。 这允许数据上下文 实际生成返回类。 这在这种情况下有效,只是因为 proc 除了查询什么都不做 数据。

    这里有完整的细节: http://tonesdotnetblog.wordpress.com/2010/06/02/solution-my-generated-linq-to-sql-stored-procedure-returns-an-int-when-it-should-return-a-table/

    您只需要在 proc 足够长的时间来生成 班级。然后您可以将其注释掉。

    【讨论】:

    • 谢谢!!奇迹般有效。只希望我提出了这个问题,以便我可以将您的问题标记为答案。
    • David:只有当我们在 sp 本身中具有动态查询的条件逻辑并且调用代码不需要任何输入时,这才有效。如果我们有基于输入参数的条件,那么即使在SET FMTONLY OFF 之后,L2Sql 将如何获取元数据。
    • 大卫:为SET FMTONLY +1,因为我不知道。
    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2012-05-01
    • 2011-09-19
    相关资源
    最近更新 更多