无法将sql函数的返回类型设置为我的类

时间:2015-05-07 11:57:52

标签: c# linq-to-sql

我有一个使用linq到sql的MVC应用程序。我刚从数据库导入了一个函数到我的dbml文件。我还添加了一个我想用作此函数的返回类型的类。但是当我查看返回类型的下拉列表(在设计器中)时,我的新类不在那里(但是其他各种类都是)。为了确保,我关闭并重新打开了dbml文件并重新启动了VS,但我仍然无法看到我的新类可用作返回类型的选项。

导致该行为的原因是什么以及如何使该函数在C#end上返回正确的类型?

注意,我的新类位于单独的cs文件中,但与dbml文件放在同一个项目和命名空间中。

1 个答案:

答案 0 :(得分:1)

我想我已经弄明白了。为了能够使用类作为sql函数的返回类型,必须将该类直接添加到dbml文件中(可能它具有映射的内容)。如果该类在其他地方声明(即使它是dbml文件的cs文件),它将无法工作。

所以最后我不得不把我的类移到dbml文件中(在设计器中重新创建它)。

另外linq to sql对函数返回的列类型非常挑剔。我通过查看自动生成的返回类中的类型克服了这一点。那么为什么不选择自动生成的课程,你可能会问?我有3个sql函数,我需要返回相同的输出类型,所以自动生成的类型不好。