无法将 return 类型的 sql 函数设置为我的 class

Can't set return type of a sql function to my class

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

导致该行为的原因是什么以及如何使函数 return 在 C# 端成为正确的类型?

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

我想我已经弄明白了。为了能够将 class 用作 sql 函数的 return 类型,class 必须直接添加到 dbml 文件中(也许它与映射)。如果 class 在其他地方声明(即使它是 dbml 文件的 cs 文件),它将不起作用。

所以最后我不得不将 class 移动到 dbml 文件(在设计器中重新创建)。


此外,sql 的 linq 对函数 return 编辑的列类型非常挑剔。我通过查看自动生成的 return class 中的类型克服了这个问题。那么为什么不使用自动生成的 class,你可能会问?我有 3 个 sql 函数需要 return 相同的输出类型,所以自动生成的类型不好。