代码之家  ›  专栏  ›  技术社区  ›  Brian

linq to sql、存储过程和方法窗格(更像是methods pain!)

  •  0
  • Brian  · 技术社区  · 16 年前

    我刚接触林肯,有个小问题。我创建了一个DBML文件,并将所有表拖到设计图面。现在,当我试图将存储过程拖到“方法”窗格中时,Visual Studio会考虑一下,然后什么都不做。我的方法不会显示在“方法”窗格中。

    后台是否发生错误?如果是这样,我如何排除故障?

    3 回复  |  直到 15 年前
        1
  •  1
  •   tvanfosson    16 年前

    可能LinqToSQL设计器无法在存储过程中找出模式,特别是在使用临时表的情况下。尝试更改存储过程,使其仅从相关表中进行选择,将其映射到设计器中(通过在正确的表上拖动),然后将过程更改回原始代码。

        2
  •  0
  •   Tacoman667    16 年前

    我自己也试过。我使用了VS2008SP1,将数据库中的每个表拖到类窗格中,并添加了它们。然后我拖入一个存储过程。处理SP的时间比处理表的时间长,但方法在“我的方法”窗格中没有出现问题。存储过程可能无法使用可用的元数据成功创建方法。

    我做得对吗?

        3
  •  0
  •   nicojs    15 年前

    杰普,我也有同样的问题。我的错误是,我试图添加到窗格中的存储过程有一个返回结果,其中包含地理数据类型。Linq2SQL设计器尚不支持此功能。

    要测试返回的数据类型(如果使用的是外来数据类型),可以将它们作为参数添加到存储过程中。设计师会给出一个错误。

    例如,尝试将以下存储过程添加到窗格将生成错误:

    CREATE PROCEDURE test
    (
        @GeographicLocation geography
    )
    AS
    BEGIN
    END;