我是LINQ的新手,我遇到了一个小问题。我创建了一个DBML文件并将所有表拖到设计图面上。现在,当我尝试将存储过程拖到方法窗格时,Visual Studio会考虑一秒钟然后不执行任何操作。我的方法没有显示在方法窗格中。
幕后发生了一些错误吗?如果是这样,我该如何排除故障呢?
答案 0 :(得分:1)
LINQ to SQL设计器可能无法确定存储过程的架构,尤其是在使用临时表时。尝试更改存储过程,只需从相关表中进行选择,将其映射到设计器中(通过拖动正确的表格),然后将过程更改回原始代码。
答案 1 :(得分:0)
我自己就试过了。我使用VS2008 SP1,将每个表从我的数据库拖到类窗格中,然后添加。然后我拖入了一个存储过程。确实需要更长的时间来处理SP然后处理表格,但是我的方法窗格中显示的方法没有问题。您的存储过程可能无法使用可用的元数据为其成功创建方法。
我做对了吗?
答案 2 :(得分:0)
Jep,我遇到了同样的问题。我的错是我尝试添加到窗格的存储过程有一个返回结果,其中包含geography数据类型。 LinQ2SQL设计人员尚不支持此功能。
如何测试返回的数据类型(如果使用的是异常数据类型),可以将它们作为参数添加到存储过程中。设计师会给出错误。
例如,尝试将以下存储过程添加到窗格将生成错误:
CREATE PROCEDURE test
(
@GeographicLocation geography
)
AS
BEGIN
END;